SQL GROUP BY 语句详解
创作时间:
作者:
@小白创作中心
SQL GROUP BY 语句详解
引用
1
来源
1.
https://geek-docs.com/sql/sql-statement/sql-group-by.html
SQL GROUP BY 语句
SQL中的GROUP BY语句用于在一些函数的帮助下将相同的数据安排到组中。例如,如果一个特定的列在不同的行中有相同的值,那么它将把这些行安排在一个组中。
重要的几点:
- GROUP BY子句与SELECT语句一起使用。
- 在查询中,GROUP BY子句放在WHERE子句之后。
- 在查询中,如果使用ORDER BY子句,则将GROUP BY子句放在前面。
语法:
SELECT column1, function_name(column2)
FROM table_name
WHERE condition
GROUP BY column1, column2
ORDER BY column1, column2;
function_name: 所使用的函数的名称,例如SUM(), AVG().
table_name: 表名.
condition: 使用条件.
示例表:
Employee
Student
示例:
- 按单列分组:组单列是指将同一列的所有值相同的行放在一个组中。考虑下面的查询:
SELECT NAME, SUM(SALARY) FROM Employee
GROUP BY NAME;
上面的查询将产生以下输出:
在上面的输出中可以看到,具有重复名称的行被分组在相同的NAME下,它们对应的SALARY是重复行的SALARY的总和。这里使用SQL的SUM()函数来计算和。
- 按多列分组:按多列分组,例如,GROUP BY column1, column2. 这意味着将两列的值放在相同的行中column1和column2在一个组。考虑下面的查询:
SELECT SUBJECT, YEAR, Count(*)
FROM Student
GROUP BY SUBJECT, YEAR;
输出:
正如您在上面的输出中看到的,SUBJECT和YEAR都相同的学生被放在同一个组中。而唯一的SUBJECT是相同的,而不是YEAR的则属于不同的组。因此,这里我们根据两列或多列对表进行了分组。
HAVING Clause
我们知道WHERE子句用于在列上放置条件,但是如果我们想在组上放置条件呢?
这时就需要使用HAVING子句了。我们可以使用HAVING子句来设置条件,以决定哪一组将成为最终结果集的一部分。此外,我们不能在WHERE子句中使用诸如SUM()、COUNT()等聚合函数。所以我们必须使用HAVING子句如果我们想在条件中使用这些函数。
语法:
SELECT column1, function_name(column2)
FROM table_name
WHERE condition
GROUP BY column1, column2
HAVING condition
ORDER BY column1, column2;
function_name: 所使用的函数的名称,例如SUM(), AVG().
table_name: 表名.
condition: 使用条件.
示例:
SELECT NAME, SUM(SALARY) FROM Employee
GROUP BY NAME
HAVING SUM(SALARY)>3000;
输出:
正如您在上面的输出中看到的,三个组中只有一个组出现在结果集中,因为它是唯一一个SALARY之和大于3000的组。所以我们在这里使用HAVING子句来放置这个条件,因为条件需要放在组而不是列上。
热门推荐
公文系统在现代行政管理中的优化与创新
沟通协作:团队成功的基石
软件工程师的职场逆袭之路:从技术提升到管理转型
全国楹联书法大展:如何将对联创作融入书法练习?
广东楹联学会诗钟社成立征联:“山钟一响群山应”下联精选
中国象棋:古代的称谓与起源探究
抗氧化剂大战超氧自由基:谁是赢家?
超氧自由基在BPS污染治理中的应用研究
超氧歧化酶:运动中的自由基克星
干咳用什么方法来治疗效果好
职场生存指南:如何避免成为“背锅侠”
卡路里:定义、应用领域及历史演变
从零到一线:一位新人演员的逆袭之路
合肥治疗肚脐囊肿哪家医院好?三家医院详细对比推荐
合肥治疗肚脐囊肿,哪家医院最好?
科学预防囊肿复发:从生活到护理的全方位指南
张道陵创立道教:从东汉到唐宋的兴衰史
贷款买房应该注意什么?网签后能否退房?外地人如何在农村买房?
自我中心:在关系中的盲点与成长的契机
重庆成“菜鸟驿站第一城”,智慧物流助力地方经济腾飞
双十一期间,菜鸟驿站如何用科技提升物流效率?
鲨鱼:海洋生态的守护者
重庆:让兴趣旅游拉动消费
速溶咖啡:你的心理能量补给站
新手如何管理好一家超市
朱凌宇演绎美猴王,京剧舞台上的超级英雄
《新神榜:哪吒重生》里的孙悟空:创新还是魔改?
细数北斗七星:探寻古老星辰中的智慧与文化
Barra风险结构管理模型
互联网金融产品:创新浪潮下的风险与机遇