SQL 分组查询如何统计不同分类数量?

使用GROUP BY配合COUNT函数可实现分类统计,如按category统计订单数:SELECT category, COUNT() AS count FROM orders GROUP BY category;支持多字段分组,如按category和年份:SELECT category, YEAR(order_date) AS year, COUNT() AS count FROM orders GROUP BY category, YEAR(order_date);可用HAVING过滤分组结果,如只显示数量大于5的类别:SELECT category, COUNT() AS count FROM orders GROUP BY category HAVING COUNT() > 5。

SQL 分组查询如何统计不同分类数量?

在 SQL 中进行分组查询并统计不同分类的数量,主要使用 GROUP BY 子句配合聚合函数 COUNT()。这种方法可以按某一列或多列的值将数据分组,并计算每组的记录数。

按单个字段分组统计数量

假设有一个订单表 orders,其中包含 category 字段表示商品类别,你想统计每个类别的订单数量:

SELECT category, COUNT(*) AS count  FROM orders  GROUP BY category;

这会返回每个 category 的名称及其对应的记录条数。

按多个字段组合分组统计

如果需要更细粒度的统计,比如按类别和年份共同分组:

SQL 分组查询如何统计不同分类数量?

美图设计室

5分钟在线高效完成平面设计,AI帮你做设计

SQL 分组查询如何统计不同分类数量?29

查看详情 SQL 分组查询如何统计不同分类数量?

SELECT category, YEAR(order_date) AS year, COUNT(*) AS count  FROM orders  GROUP BY category, YEAR(order_date);

这样会列出每个类别每年的订单数量。

添加条件筛选分组结果

使用 HAVING 子句对分组后的结果进行过滤。例如,只显示订单数大于 5 的类别:

SELECT category, COUNT(*) AS count  FROM orders  GROUP BY category  HAVING COUNT(*) > 5;

HAVING 是作用于分组后的数据,而 WHERE 是在分组前过滤原始数据。

基本上就这些。掌握 GROUP BY 和 COUNT 的搭配,再根据需要加上 HAVING 或多字段分组,就能灵活实现各类分类统计需求。

相关标签:

go 聚合函数 sql count select

上一篇
下一篇
text=ZqhQzanResources