sql 分组统计_学习SQL:汇总分析

汇总函数

常用汇总分析函数count sum avg max min

所有汇总函数会除去空值,count(*)所有非空值统计;

删除重复值:汇总函数(distinct 列名)

练习:汇总分析

查询课程编号为”0002“的总成绩

81c0deed17f4ff662145ea7ffefe32b1.png

查询选了课程的学生人数

dbd3ef9c43b0fedb4f914a86963aa31d.png

数据分组

分析方法:1.数据分组group by 2.汇总函数count 3.组合结果

运行顺序:

4 select

1 from student

2 where

3 group by

练习:分组

查询各科成绩最高和最低的分

2178292f93277be35c761138373e10f1.png

查询每门课程被选修的学生数

937b03fc619b2e936f8d9576cbfe7caf.png

查询男生/女生的人数

ba4bc2374a8911ca3e3511b5db2912d2.png

对分组结果指定条件having

sql运行顺序

1)先运行from后的子句

2)select子句

select 查询结果

from 从哪张表中查找数据

where查询条件

group by 分组

having 对分组结果指定条件

练习:分组结果的条件

查询平均成绩大于60分学生的学号和平均成绩

b457e6ad9ec00058d5f7efb944b3fa77.png

查询至少选修两门课程的学生学号

c72518203d33da3b0f3ae99ab08b44ee.png

查询同名同性学生名单并统计同名人数

c07991d39cc2f5783a86a51d0089d23d.png

用SQL解决业务问题

1.翻译成大白话

2.写出分析思路

3.写出对应的SQL思路

练习:每门课程的平均成绩

如何计算门课程的平均成绩并且平均成绩大于等于80分

第一步:从score表中取出

第二步:将成绩按课程进行分组

第三步:计算各课程的平均成绩,并筛选出平均成绩大于等于80的课程

第四步:选择呈现课程及满足条件的平均成绩

839fa0e0baacd328d3401173700fdac3.png

排序

order by排序语句最后运行

空值的排序(升序)

select *

from teacher

order by 教师姓名;

练习:理解sql的运行顺序

查询不及格的课程并按课程号从大到小排列

d3ed34604fddc3c8e1cb49f77ff92713.png

查询每门课程的平均成绩,结果按平均成绩升序。平均成绩相同时,按课程号降序排列

d02f36df3c57336489d10f6def099717.png

先从score表中按课程号分组,再筛选出按课程号的平均成绩,再按平均成绩升序排列,如果平均成绩相同,再按课程号降序排列

常见错误;

group by,having子句中不能用别名,因为select还没运行

数据类型尤其字符串,如果进行排序时出现错误,先统一数据数值类型再排序

5d714f95e5ec6e78d143ef16686dcf2a.png

sqlzoo练习

d9a0576451394b46b2510f3c21f177c4.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值