暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SQL基础-group by

SQL数据库笔记 2019-11-20
543

在使用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数据库笔记”公众号,一起学习吧!


最后修改时间:2019-12-16 10:02:45
文章转载自SQL数据库笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论