Defines a interface for aggregated entity queries.
Expanded class hierarchy of QueryAggregateInterface
All classes that implement QueryAggregateInterface
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();
}
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
AlterableInterface:: |
public | function | Adds additional metadata to the query. | 2 |
AlterableInterface:: |
public | function | Adds a tag to a query. | 2 |
AlterableInterface:: |
public | function | Retrieves a given piece of metadata. | 2 |
AlterableInterface:: |
public | function | Determines if a given query has all specified tags. | 2 |
AlterableInterface:: |
public | function | Determines if a given query has any specified tag. | 2 |
AlterableInterface:: |
public | function | Determines if a given query has a given tag. | 2 |
QueryAggregateInterface:: |
public | function | Specifies a field and a function to aggregate on. | |
QueryAggregateInterface:: |
public | function | Sets a condition for an aggregated value. | |
QueryAggregateInterface:: |
public | function | Creates an object holding a group of conditions. | 1 |
QueryAggregateInterface:: |
public | function |
Executes the aggregate query. Overrides QueryInterface:: |
|
QueryAggregateInterface:: |
public | function | Queries for the existence of a field. | 1 |
QueryAggregateInterface:: |
public | function | Specifies the field to group on. | |
QueryAggregateInterface:: |
public | function | Queries for the nonexistence of a field. | 1 |
QueryAggregateInterface:: |
public | function | Sorts by an aggregated value. | |
QueryInterface:: |
public | function | ||
QueryInterface:: |
public | function | Queries the current or every revision. | |
QueryInterface:: |
public | function | Creates a new group of conditions ANDed together. | |
QueryInterface:: |
public | function | Add a condition to the query or a condition group. | |
QueryInterface:: |
public | function | Creates an object holding a group of conditions. | 2 |
QueryInterface:: |
public | function | Makes this a count query. | |
QueryInterface:: |
public | function | Queries for the existence of a field. | |
QueryInterface:: |
public | function | Gets the entity type for this query. | |
QueryInterface:: |
public | function | Queries for the nonexistence of a field. | |
QueryInterface:: |
public | function | Creates a new group of conditions ORed together. | |
QueryInterface:: |
public | function | Enables a pager for the query. | |
QueryInterface:: |
public | function | ||
QueryInterface:: |
public | function | ||
QueryInterface:: |
public | function | Enables sortable tables for this query. |