sql关键字group by

本文详细介绍了SQL中的GROUP BY语句,它用于将具有相同数据的行进行分组,并结合聚合函数如SUM()进行计算。GROUP BY需要与SELECT一起使用,且在WHERE之后,ORDER BY之前。文中通过示例解释了如何根据一列或多列进行分组,并展示了HAVING子句在筛选分组后数据的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQL中的GROUP BY语句用于借助某些function将相同的数据分组。注意这里的借助二字。也就是说,如果特定的列在不同的行中具有相同的值,则它将这些行排列在一组中。

关于GROUP BY的使用要点:

  • GROUP BY子句需要和SELECT语句一起使用。
  • 在查询中,GROUP BY子句放在WHERE子句之后。
  • 在查询中,如果使用GROUP BY子句,则将其放在ORDER BY子句之前。

其语法格式如下:

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

例,假设有customers表如下:

现在假设有如下sql语句:

SELECT NAME, SUM(SALARY) FROM Employee 
GROUP BY NAME;

则其查询结果为:

从上面的输出中可以看到,具有重复名称的行被分组在同一列下,它们对应的SALARY是重复行的SALARY之和。 SQL的SUM()函数用于计算总和。

也可以group by多个column。

例如:GROUP BY column1,column2。 这个写法的意思是将具有相同的列1和列2值的所有行放在一组中。例如有如下的表students:

现有sql语句如下:

SELECT SUBJECT, YEAR, Count(*)
FROM Student
GROUP BY SUBJECT, YEAR;

其查询结果为:

HAVING

在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。

HAVING 子句可以让我们筛选分组后的各组数据。

其用法如下:

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值