sql出现列名无效的原因_SQL汇总分析

笔记

009510c861f66fc3f5844e8d7c27559b.png

1. 汇总函数

682904714438786cec6fb5415331933e.png

注意:

1) 所有的汇总函数如果输入的是列名,计算前会将空值(null)排除再计算(count(*)会包含空值)

2) sum(列名)和avg(列名)只能对数值类型的列计算

汇总分析练习:

210de7c1c4ae81b8e52bf884645c9310.png

2. 分组:group by

分析方法:数据分组——应用函数——组合结果

e5deb494cac45c650b1fe6efa231fa58.png

分组练习:

7d88b259af4ed71fc4b4ecbfa2267a0c.png

3. 对分组结果指定条件:having

对分组结果指定条件练习:

c353f909eb5a8b3374d47bffe4cc74e9.png

4. 用SQL解决业务问题

SQL解决业务问题方法:

6e41b1ff5542fc30f8ff7724cf19a0a7.png

理解业务问题:计算每门课程的平均成绩,并且平均成绩大于等于80分

分析思路:

select 查询结果

【每门课的课程号:分组,平均成绩:avg(成绩)】

from 从哪张表【成绩表:score】

where 查询条件【没有】

group by 分组【按课程号分组】

having 对分组结果指定条件【平均成绩>=80】

写出SQL语句:

7b4534bca087d6fa5370def86afedaac.png

5. 对查询结果进行排序:order by

降序排序:desc 升序排序:asc

注意:1)order by 默认使用升序排序

2)空值(null)默认排在前面

3)limit 从查询结果中取出指定行

排序练习:

85eb122c94be12abf30d7c7265846d53.png

6. 常见错误

1) 在group by中使用了select里的别名

2) 在where中使用聚合函数

3) 字符串类型的数字

7. 总结

1) SQL运行的顺序

SQL运行的顺序:from,where,group by,having,select,order by,limit

73bd9c6af7bb36f5ebf91c155910ce7a.png

2) 查询复杂业务问题步骤

a 将业务问题翻译成大白话

b 按照SQL子句写出分析思路

c 写出SQL语句

3) 分析报错原因,避免常见错误

8. Sqlzoo练习

c982134cc8df584b430f1fc1e240e66d.png

文章部分资料来源:猴子课程,SQLZOO