SQL 基础之group by的使用
在使用select语句查询数据时,可以用group by子句对某个列或多个列数据值分组,通常与聚合函数一起使用。
group by的语法:
select column_name, aggregate_function(column_name)
from table_name
where column_name operator value
group by column_name; --分组列
--where一定要在group by前面
--aggregate_function(column_name)聚合列
示例:
表的定义如下:
create table [dbo].[StuScores](
[StuId] [int] not null,
[CusId] [int] not null,
[Score] [float] not null,
[TestDate] [datetime] null
)
1.普通查询如下:
select * from [dbo].[StuScores]
2.使用group by对学生计算总成绩:
select [StuId],sum([Score]) as 总成绩
from [dbo].[StuScores]
group by [StuId]
这里对分数学生学号进行分组再计算总成绩
3.对学号102计算总成绩:
select [StuId],sum([Score]) as 总成绩
from [dbo].[StuScores]
where [StuId]=102
group by [StuId]
!!!这里一定要注意where一定要在group by前面,不然就用having,having是放在group by后面
4.使用having对学号102计算总成绩:
select [StuId],sum([Score]) as 总成绩
from [dbo].[StuScores]
group by [StuId]
having [StuId]=102
5.使用group by查出学生最大的分数:
select [StuId],max([Score]) as 最大成绩
from [dbo].[StuScores]
group by [StuId]
end
如有错误欢迎留言指正
有兴趣的小伙伴可以关注“SQL数据库笔记”公众号,一起学习吧!