MySQL 知识点 | 分组查询 Group By

本文介绍了SQL中的分组查询概念,包括基本格式、示例和难点解析。通过实例展示了如何查询各专业名、各专业学生数、各门课程的平均成绩和选修人数,以及统计各专业男生人数和平均成绩高于75分的学生学号。同时,提供了相关SQL作业题供读者练习。
摘要由CSDN通过智能技术生成

目录

 

分组查询

格式

举例

难点

作业


分组查询

格式

Select 列名 From 表名 [Group By 分组表达式 [having 过滤条件]]

凡是在Select语句后面出现的列,必须包含在聚合函数或者Group By 子句中

举例

Select avg(成绩) as 平均成绩,所在系 From table1 Group by 所在系

Eg:查询男女员工的平均工资

Select avg(工资) as 平均工资,性别 From 工资表 Group by 性别

难点

  • 聚合不应出现在Where子句中,除非该聚合位于Having子句或者选择列表所包含的子查询中,并且要对其进行聚合的列是外部引用。 例如:

错误写法:Where avg(成绩)>80

正确写法:Having avg(成绩)>80

作业

1、查看XSCJ数据库中XS学生基本情况表、KC课程表、XS_KC成绩表的数据信息。(确保数据和教材第105-106页表5-13学生基本情况表、表5-14课程表、表5-15成绩表中数据一致。)

 

 

2、完成教材第107页以下操作:

 

 

(1)将XS表中各专业名输出。

 

Select 专业名 from xs Group  by 专业名;

 

(2)求XS表中各专业的学生数。

 

select 专业名,count(学号) as 学生数 from xs Group By 专业名;

 

(3)求被选修的各门课程的平均成绩和选修该课程的人数。

Select 课程名 , count(学号) as 人数 , avg(成绩) as 平均成绩 from xs_kc  join kc on xs_kc.课程号=kc.课程号 Group By 课程名;

 

 

(4)统计每个专业的男生(1)人数。

 

Select 专业名,count(学号) AS 人数 from xs where 性别=1 Group By 专业名;

 

(5)查找平均成绩在75分以上的学生的学号和平均成绩。(参照教材第99页例5.42)

Select 学号,avg(成绩) AS 平均成绩 from xs_kc Group By 学号 Having avg(成绩) >= 75;

 

(6)查找选修课程超过2门且成绩都在75分以上的学生的学号。(参照教材第99页例5.43)

 

Select 学号 from xs_kc where 成绩>=75 Group By 学号 Having count(课程号)>2;

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萌狼蓝天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值