SQL GROUP BY 每组数量

在SQL中,使用GROUP BY子句可以按照指定的列对数据进行分组。在这篇文章中,我们将详细介绍如何使用GROUP BY子句来统计每个分组中的记录数量。
概述
GROUP BY子句用于将结果集按照一个或多个列进行分组,然后对每个组应用聚合函数(如COUNT、SUM、AVG等)。在统计数据中,经常需要查询每个分组中的记录数量,这时就需要使用COUNT函数结合GROUP BY子句来实现。
下面以一个示例数据表为例来说明如何使用GROUP BY来统计每个分组的数量:
假设我们有一个名为users的数据表,包含以下字段:
- id:用户ID
- name:用户名
- city:城市
现在我们希望统计每个城市中的用户数量,即统计每个城市分组的数量。
SQL语句
下面是一个基本的SQL语句,用于统计每个城市中的用户数量:
SELECT city, COUNT(*) as count
FROM users
GROUP BY city;
上面的SQL语句中,我们通过SELECT语句选择了需要查询的列city和使用COUNT函数统计每个城市分组的数量,别名为count。然后使用GROUP BY子句将数据按照city列分组。
运行结果
假设我们的users表中有以下数据:
| id | name | city |
|---|---|---|
| 1 | Tom | Beijing |
| 2 | Mary | Shanghai |
| 3 | John | Beijing |
| 4 | Jack | Shanghai |
| 5 | Lisa | Beijing |
执行上面的SQL语句后,将会得到如下结果:
| city | count |
|---|---|
| Beijing | 3 |
| Shanghai | 2 |
以上结果表明,北京有3个用户,上海有2个用户。
总结
通过使用GROUP BY子句和COUNT函数,我们可以方便地统计每个分组的数量。在实际工作中,这种统计分组数量的需求十分常见,因此掌握如何使用GROUP BY来实现这一功能是很重要的。
极客教程