📜  sql 按计数分组 - SQL (1)

📅  最后修改于: 2023-12-03 15:20:17.032000             🧑  作者: Mango

SQL按计数分组

在SQL中,按计数分组(Count Grouping)是一种用于聚合函数的技术,它将数据库表中的数据按照一定的条件进行分组,并在该分组上应用聚合函数来进行分组统计。

使用COUNT函数进行分组

COUNT函数是一种聚合函数,可用于计算表中满足指定条件的行数。当与GROUP BY子句一起使用时,它将返回每个组中符合条件的行数。

下面是一个简单的示例,它返回每个性别的学生数:

SELECT gender, COUNT(*) AS num_students
FROM students
GROUP BY gender;

该查询首先使用GROUP BY子句将数据按性别分组,然后使用COUNT(*)函数计算每个组中的行数。最后,使用AS关键字将计算结果重命名为"num_students"。

使用HAVING子句筛选分组

HAVING子句用于在GROUP BY子句执行完毕之后筛选分组记录。它类似于WHERE子句,但是能够在按组进行聚合之后进行条件筛选。

下面是一个示例,它返回及格学生的各科平均分数:

SELECT subject, AVG(score) AS average_score
FROM exams
GROUP BY subject
HAVING AVG(score) >= 60;

该查询使用GROUP BY子句将数据按科目分组,然后使用AVG()函数计算每个科目的平均分数。最后,使用HAVING子句筛选出平均分数大于等于60分的记录。

使用SUM函数进行分组

SUM函数也是一种聚合函数,可用于计算表中符合指定条件的行的和。当与GROUP BY子句一起使用时,它将返回每个组的行总和。

下面是一个示例,它返回每个地区的销售总额:

SELECT region, SUM(amount) AS total_sales
FROM sales
GROUP BY region;

该查询使用GROUP BY子句将数据按地区分组,然后使用SUM()函数计算每个地区的销售总额。最后,使用AS关键字将计算结果重命名为"total_sales"。

使用MAX和MIN函数进行分组

MAX和MIN函数也是一种聚合函数,它们可用于分别计算表中满足指定条件的最大值和最小值。当与GROUP BY子句一起使用时,它们将返回每个组的最大值和最小值。

下面是一个示例,它返回每个地区的最高销售额和最低销售额:

SELECT region, MAX(amount) AS max_sales, MIN(amount) AS min_sales
FROM sales
GROUP BY region;

该查询使用GROUP BY子句将数据按地区分组,然后使用MAX()和MIN()函数计算每个地区的最高销售额和最低销售额。最后,使用AS关键字将计算结果重命名为"max_sales"和"min_sales"。

总结

按计数分组是SQL中常用的一种技术,它利用GROUP BY子句将数据按一定条件进行聚合,并使用聚合函数计算每个组中的数据统计值。常用的聚合函数包括COUNT、AVG、SUM、MAX和MIN等。同时,也可以使用HAVING子句在分组完成后对聚合结果进行进一步筛选。