TableSelect::groupBy()

在数据库查询中添加GROUP BY子句的方法

首字母:T

TableSelect::groupBy()是一个用于在数据库查询中添加GROUP BY子句的方法。它允许我们根据指定的列对结果进行分组。

使用语法: TableSelect::groupBy($field)

参数:

  • $field: 字符串或数组,指定要分组的列名。

返回值: TableSelect对象本身。

示例1: 假设我们有一个数据库表名为"users",其中包含以下列:id, name, age。我们想要按照年龄(age)进行分组,以查找每个年龄段的用户数量。可以使用groupBy()方法来实现:

$query = \Drupal::database()->select('users', 'u');
$query->addField('u', 'age');
$query->addExpression('COUNT(*)', 'count');
$query->groupBy('age');
$result = $query->execute()->fetchAll();
foreach ($result as $row) {
 $age = $row->age;
 $count = $row->count;
 echo "Age: $age, Count: $count
"; }

示例2: 如果我们想要同时按照年龄(age)和性别(gender)进行分组,可以传递一个包含多个列名的数组给groupBy()方法:

$query = \Drupal::database()->select('users', 'u');
$query->addField('u', 'age');
$query->addField('u', 'gender');
$query->addExpression('COUNT(*)', 'count');
$query->groupBy(['age', 'gender']);
$result = $query->execute()->fetchAll();
foreach ($result as $row) {
 $age = $row->age;
 $gender = $row->gender;
 $count = $row->count;
 echo "Age: $age, Gender: $gender, Count: $count
"; }

这样,我们就可以根据指定的列进行分组,并获取每个分组的统计结果。

同首字母函数