Esempio n. 1
0
 /**
  * {@inheritdoc}
  */
 public function build(DataProviderInterface $dataProvider, array $dimensions, RequestBucketInterface $bucket, Table $entityIdsTable)
 {
     $metrics = $this->metricsBuilder->build($bucket);
     $select = $dataProvider->getDataSet($bucket, $dimensions, $entityIdsTable);
     $select->columns($metrics);
     $select->group(RequestBucketInterface::FIELD_VALUE);
     return $dataProvider->execute($select);
 }
Esempio n. 2
0
 /**
  * {@inheritdoc}
  */
 public function getAggregation(BucketInterface $bucket, array $dimensions, $range, \Magento\Framework\Search\Dynamic\EntityStorage $entityStorage)
 {
     $select = $this->dataProvider->getDataSet($bucket, $dimensions, $entityStorage->getSource());
     $column = $select->getPart(Select::COLUMNS)[0];
     $select->reset(Select::COLUMNS);
     $rangeExpr = new \Zend_Db_Expr($this->connection->quoteInto('(FLOOR(' . $column[1] . ' / ? ) + 1)', $range));
     $select->columns(['range' => $rangeExpr])->columns(['metrix' => 'COUNT(*)'])->group('range')->order('range');
     $result = $this->connection->fetchPairs($select);
     return $result;
 }
Esempio n. 3
0
 /**
  * {@inheritdoc}
  */
 public function getAggregation(BucketInterface $bucket, array $dimensions, $range, array $entityIds)
 {
     $select = $this->dataProvider->getDataSet($bucket, $dimensions);
     $column = $select->getPart(Select::COLUMNS)[0];
     $select->reset(Select::COLUMNS);
     $rangeExpr = new \Zend_Db_Expr($this->getConnection()->quoteInto('(FLOOR(' . $column[1] . ' / ? ) + 1)', $range));
     $select->columns(['range' => $rangeExpr])->columns(['metrix' => 'COUNT(*)'])->where('main_table.entity_id in (?)', $entityIds)->group('range')->order('range');
     $result = $this->getConnection()->fetchPairs($select);
     return $result;
 }
Esempio n. 4
0
 /**
  * {@inheritdoc}
  */
 public function build(DataProviderInterface $dataProvider, array $dimensions, RequestBucketInterface $bucket, Table $entityIdsTable)
 {
     /** @var RangeBucket $bucket */
     $select = $dataProvider->getDataSet($bucket, $dimensions, $entityIdsTable);
     $metrics = $this->metricsBuilder->build($bucket);
     /** @var Select $fullQuery */
     $fullQuery = $this->connection->select();
     $fullQuery->from(['main_table' => $select], null);
     $fullQuery = $this->generateCase($fullQuery, $bucket->getRanges());
     $fullQuery->columns($metrics);
     $fullQuery->group(new \Zend_Db_Expr('1'));
     return $dataProvider->execute($fullQuery);
 }