interface QueryAggregateInterface

Defines a interface for aggregated entity queries.

Hierarchy

Expanded class hierarchy of QueryAggregateInterface

All classes that implement QueryAggregateInterface

2 files declare their use of QueryAggregateInterface
QueryAggregate.php in drupal/core/modules/field_sql_storage/lib/Drupal/field_sql_storage/Entity/QueryAggregate.php
Contains \Drupal\field_sql_storage\Entity\QueryAggregate.
QueryFactory.php in drupal/core/lib/Drupal/Core/Config/Entity/Query/QueryFactory.php
Contains \Drupal\Core\Config\Entity\Query\QueryFactory.

File

drupal/core/lib/Drupal/Core/Entity/Query/QueryAggregateInterface.php, line 13
Contains \Drupal\Core\Entity\Query\QueryAggregateInterface.

Namespace

Drupal\Core\Entity\Query
View source
interface QueryAggregateInterface extends QueryInterface {

  /**
   * Specifies a field and a function to aggregate on.
   *
   * Available functions: SUM, AVG, MIN, MAX and COUNT.
   *
   * @todo What about GROUP_CONCAT support?
   *
   * @param string $field
   *   The name of the field to aggregate by.
   * @param string $function
   *   The aggregation function, for example COUNT or MIN.
   * @param string $langcode
   *   (optional) The language code.
   * @param string $alias
   *   (optional) The key that will be used on the resultset.
   *
   * @return \Drupal\Core\Entity\Query\QueryAggregateInterface
   *   The called object.
   */
  public function aggregate($field, $function, $langcode = NULL, &$alias = NULL);

  /**
   * Specifies the field to group on.
   *
   * @param string $field
   *   The name of the field to group by.
   *
   * @return \Drupal\Core\Entity\Query\QueryAggregateInterface
   *   The called object.
   */
  public function groupBy($field);

  /**
   * Sets a condition for an aggregated value.
   *
   * @param string $field
   *   The name of the field to aggregate by.
   * @param string $function
   *   The aggregation function, for example COUNT or MIN.
   * @param mixed $value
   *   The actual value of the field.
   *
   * @param $operator
   *   Possible values:
   *   - '=', '<>', '>', '>=', '<', '<=', 'STARTS_WITH', 'CONTAINS',
   *     'ENDS_WITH': These operators expect $value to be a literal of the
   *     same type as the column.
   *   - 'IN', 'NOT IN': These operators expect $value to be an array of
   *     literals of the same type as the column.
   *   - 'BETWEEN': This operator expects $value to be an array of two literals
   *     of the same type as the column.
   *
   * @param string $langcode
   *   (optional) The language code.
   *
   * @return \Drupal\Core\Entity\Query\QueryAggregateInterface
   *   The called object.
   *
   * @see \Drupal\Core\Entity\Query\QueryInterface::condition().
   */
  public function conditionAggregate($field, $function = NULL, $value = NULL, $operator = '=', $langcode = NULL);

  /**
   * Queries for the existence of a field.
   *
   * @param string $field
   *   The name of the field.
   * @param string $function
   *   The aggregate function.
   * @param $langcode
   *   (optional) The language code.
   *
   * @return \Drupal\Core\Entity\Query\QueryAggregateInterface
   *   The called object.
   */
  public function existsAggregate($field, $function, $langcode = NULL);

  /**
   * Queries for the nonexistence of a field.
   *
   * @param string $field.
   *   The name of a field.
   * @param string $function
   *   The aggregate function.
   * @param string $langcode
   *   (optional) The language code.
   *
   * @return \Drupal\Core\Entity\Query\QueryAggregateInterface
   *   The called object.
   */
  public function notExistsAggregate($field, $function, $langcode = NULL);

  /**
   * Creates an object holding a group of conditions.
   *
   * See andConditionAggregateGroup() and orConditionAggregateGroup() for more.
   *
   * @param string $conjunction
   *   - AND (default): this is the equivalent of andConditionAggregateGroup().
   *   - OR: this is the equivalent of andConditionAggregateGroup().
   *
   * @return ConditionInterface
   *   An object holding a group of conditions.
   */
  public function conditionAggregateGroupFactory($conjunction = 'AND');

  /**
   * Sorts by an aggregated value.
   *
   * @param string $field
   *   The name of a field.
   * @param string $function
   *   The aggregate function. This is only marked optional for interface
   *   compatibility, it is illegal to leave it out.
   * @param string $direction
   *   The order of sorting, either DESC for descending of ASC for ascending.
   * @param string $langcode
   *   (optional) The language code.
   *
   * @return \Drupal\Core\Entity\Query\QueryAggregateInterface
   *   The called object.
   */
  public function sortAggregate($field, $function, $direction = 'ASC', $langcode = NULL);

  /**
   * Executes the aggregate query.
   *
   * @return array
   *   A list of result row arrays. Each result row contains the aggregate
   *   results as keys and also the groupBy columns as keys:
   * @code
   * $result = $query
   *   ->aggregate('nid', 'count')
   *   ->condition('status', 1)
   *   ->groupby('type')
   *   ->executeAggregate();
   * @endcode
   * Will return:
   * @code
   * $result[0] = array('count_nid' => 3, 'type' => 'page');
   * $result[1] = array('count_nid' => 1, 'type' => 'poll');
   * $result[2] = array('count_nid' => 4, 'type' => 'story');
   * @endcode
   */
  public function execute();

}

Members

Namesort descending Modifiers Type Description Overrides
AlterableInterface::addMetaData public function Adds additional metadata to the query. 2
AlterableInterface::addTag public function Adds a tag to a query. 2
AlterableInterface::getMetaData public function Retrieves a given piece of metadata. 2
AlterableInterface::hasAllTags public function Determines if a given query has all specified tags. 2
AlterableInterface::hasAnyTag public function Determines if a given query has any specified tag. 2
AlterableInterface::hasTag public function Determines if a given query has a given tag. 2
QueryAggregateInterface::aggregate public function Specifies a field and a function to aggregate on.
QueryAggregateInterface::conditionAggregate public function Sets a condition for an aggregated value.
QueryAggregateInterface::conditionAggregateGroupFactory public function Creates an object holding a group of conditions. 1
QueryAggregateInterface::execute public function Executes the aggregate query. Overrides QueryInterface::execute
QueryAggregateInterface::existsAggregate public function Queries for the existence of a field. 1
QueryAggregateInterface::groupBy public function Specifies the field to group on.
QueryAggregateInterface::notExistsAggregate public function Queries for the nonexistence of a field. 1
QueryAggregateInterface::sortAggregate public function Sorts by an aggregated value.
QueryInterface::accessCheck public function
QueryInterface::age public function Queries the current or every revision.
QueryInterface::andConditionGroup public function Creates a new group of conditions ANDed together.
QueryInterface::condition public function Add a condition to the query or a condition group.
QueryInterface::conditionGroupFactory public function Creates an object holding a group of conditions. 2
QueryInterface::count public function Makes this a count query.
QueryInterface::exists public function Queries for the existence of a field.
QueryInterface::getEntityType public function Gets the entity type for this query.
QueryInterface::notExists public function Queries for the nonexistence of a field.
QueryInterface::orConditionGroup public function Creates a new group of conditions ORed together.
QueryInterface::pager public function Enables a pager for the query.
QueryInterface::range public function
QueryInterface::sort public function
QueryInterface::tableSort public function Enables sortable tables for this query.