1. 汇总分析
- 什么是函数?
函数三个特点:1. 具备某个功能,方便使用函数的人实现特定功能。2. 输入端,用于接收使用函数的人给予的数据,数据称为函数的参数。3. 输出端,用于经处理完的数据返回回到数据中,称为返回值。 将重复工作简化成固定步骤。
- 常用的汇总函数有哪些?
![4336548e11bf94c8054fcd7b55b4f859.png](https://i-blog.csdnimg.cn/blog_migrate/42d6351031887f24a99429346c6450f7.jpeg)
![1fa70bf729cc27c7702988e801a7935e.png](https://i-blog.csdnimg.cn/blog_migrate/7c99d04715c5d8b2cd891b6857b67629.png)
不计重复值:
select count(distinct TeacherName)
from teacher;
/*
插入数据的时候输入的一个字符串为‘null’但不是空值。
正确空值应该写作
insert into teacher(TeacherNumber, TeacherName)
values(‘0003’, null);
为空值时,行数(count)应为3
*/
![d667867f095431a3ddeb1835ab9623af.png](https://i-blog.csdnimg.cn/blog_migrate/ea53e98de36b36a2044e314339121794.png)
![24fcf22de254791b336236bd4edaf577.png](https://i-blog.csdnimg.cn/blog_migrate/623106ba7d8abedcd0a050cdfa6dedbd.png)
![165161629e87c00562065f27fb802e99.png](https://i-blog.csdnimg.cn/blog_migrate/02c83af94842f3a88a8b67abf7f3fee7.png)
练习:汇总分析
![0b5ff7454667028b2b70dd0e6fcfda73.png](https://i-blog.csdnimg.cn/blog_migrate/d9a49c7848ced0956a533cb8d9a2d3d1.png)
![e8069c765b12b4b773fb088dc773445b.png](https://i-blog.csdnimg.cn/blog_migrate/b542a8d39e4ffdbc81a0ea157abc2498.png)
2. 对数据分组
- 如何对数据分组?
使用子句group by按照某个条件进行分组。例:学生按照性别进行分组。
![10766d3c4a5cfbb2e7d6f85d1269b918.png](https://i-blog.csdnimg.cn/blog_migrate/19680bdf36dfd615f00b55eab8b1dbfa.png)
![abdd46ef778c19f0f67806fec5a78286.png](https://i-blog.csdnimg.cn/blog_migrate/8501ce7296d47183efd301824b3c20a8.png)
- 练习:常见面试题
![5db4f83b2ea7a08f9a57768032f80278.png](https://i-blog.csdnimg.cn/blog_migrate/70bab5770b9ad673a85d1cedd798d03a.jpeg)
![468887653dfcdae43f299603cd1d720b.png](https://i-blog.csdnimg.cn/blog_migrate/764a1780c4cbbfd797d5dd8dd1fd0a7b.jpeg)
![4ac90232c0b8a7cf1a1e3c06a3122133.png](https://i-blog.csdnimg.cn/blog_migrate/6d9647250cb080e1b16378fc2015d156.png)
-- 查询男生,女生的人数
3. 对分组结果指定条件
- 如何为分组结果指定条件 ?
使用having为分组结果指定条件,常用于分组以后的条件。例如:男女生分组后只对某组指定某项条件。
![e1463fcf912173ec350f23034eef3901.png](https://i-blog.csdnimg.cn/blog_migrate/e102e6a3528fd8703176c5b36dce72de.jpeg)
![2b5bd30756563872d4d2ebdc7e45de85.png](https://i-blog.csdnimg.cn/blog_migrate/406dc33cc85ad86c8db041787741c4b8.png)
- 练习:常见面试题
![d14e98f6882af96097455cc18cd158b9.png](https://i-blog.csdnimg.cn/blog_migrate/53c578e1c037afa931a67bf4e68173a7.jpeg)
![5c83f1a19109ec5a5772f5efdcb5176e.png](https://i-blog.csdnimg.cn/blog_migrate/70085cf01678586ab5f10400eb498925.jpeg)
![bcd50aafaa35e2fb18f13a9a7020f43e.png](https://i-blog.csdnimg.cn/blog_migrate/31ac2b7257135ec843ebff739ac5e9f4.jpeg)
4. 如何用 SQL 解决业务问题?
- 业务问题解决套路
- 翻译成简单语言
- 写出分析思路
- 写出对应的SQL子句
- 如何计算每门课程的平均成绩?
![811fa5815ad5b915bc789354ba66c455.png](https://i-blog.csdnimg.cn/blog_migrate/d3507a94530920df62699f8aba9da639.jpeg)
练习:
![04e8b4d2dda6bd262c720a8c887f145a.png](https://i-blog.csdnimg.cn/blog_migrate/b3439987c98f524cf826de63401749c9.jpeg)
5. 如何对查询结果排序?
- 升序and降序
升序(Asc)从小到大,降序(Desc)从大到小。
![a292cb41f7032b16546d6308088c196b.png](https://i-blog.csdnimg.cn/blog_migrate/0c111c22a2271603c75c8131cd17394e.jpeg)
![95a5f9ac490e9b2c34d9e40969f57096.png](https://i-blog.csdnimg.cn/blog_migrate/84663365dff7e0fbb7e5caf85851ebf0.jpeg)
- 指定多个排序列名
order by后加多个列名进行多个列的排序(从左到右)
![edb7f1d04304353e1b4a82202faca2ef.png](https://i-blog.csdnimg.cn/blog_migrate/d1c2d9e14312a52b7e498672225267e0.jpeg)
- 空值如何排序?
执行order by子句后,空值会直接排在最前面。
![300819a313d4b755d456cbedf5401b99.png](https://i-blog.csdnimg.cn/blog_migrate/6076ed6fb1d511cc0e8612391ad85936.png)
空值插入错误
insert into teacher(TeacherNumber, TeacherName)
values ('0003', null);
从查询结果中取出指定行:limit
![eab908b579347134be38988203933556.png](https://i-blog.csdnimg.cn/blog_migrate/d5f2adf06ecbe5d0e716d89bdd7643b4.png)
- 练习:常见面试题
![dbae4af1e292ecc189d09d3187c4526d.png](https://i-blog.csdnimg.cn/blog_migrate/8a126afc0f3ec530d2c3ed2078d93037.jpeg)
![bfb573379daf039a08cc15083ed6ac73.png](https://i-blog.csdnimg.cn/blog_migrate/8133a8f0f9832c29c101da5ae808d055.jpeg)
6. 如何看懂 SQL 报错信息?
- 几种常见的 SQL 错误
![4578221f3ed22a5efa2ae2db8d5f76d5.png](https://i-blog.csdnimg.cn/blog_migrate/2e1675af7104be5bc055906a0839c01b.jpeg)
先执行having语句才进行select 查询结果。所有无法识别平均成绩,不可使用select子句的别名。
![54942e4c55205fc4d591f9ef816ca063.png](https://i-blog.csdnimg.cn/blog_migrate/08ab42c4de6d011ed6b5f070bd60e482.jpeg)
不能在where子句中使用汇总函数。
![2c415d9a2717130c482fca46d35fc485.png](https://i-blog.csdnimg.cn/blog_migrate/eb81108a0e2062e0e8115f013a19d54d.jpeg)
最初输入时将Price设定为字符串类型,而字符串类型的排序与数值的排序方式有所不同。
解决方法:应将price设定为(int)数值类型。
- 练习:SQL 练习题
![b08f041815af4861c471c1e422cd797e.png](https://i-blog.csdnimg.cn/blog_migrate/186b1a19b5abb8a72233a176ab115008.jpeg)
![d24f762598d53b1d4c48728f0f95c372.png](https://i-blog.csdnimg.cn/blog_migrate/0f2a35e4079dae1d6795dd7481ed2e83.jpeg)
![16f51bebfa8478656315cf9d452cd798.png](https://i-blog.csdnimg.cn/blog_migrate/63ca79ee2890860d0097791623a66720.jpeg)
![dbcb23bb6e46531aa6ca87f7e01671d9.png](https://i-blog.csdnimg.cn/blog_migrate/7f60a20cd10adf6ce0dea1a9b4453aa8.jpeg)
![9d2b6f6b7a6bf96a1cd14861040e9e4d.png](https://i-blog.csdnimg.cn/blog_migrate/fc708dbe92850484d0b722440e0e03f6.jpeg)
![8000cede96d60435f8a8e0e5db4a7643.png](https://i-blog.csdnimg.cn/blog_migrate/134664b2bb28686007eab93db461a86b.jpeg)
![4d53ac08e2ebf1fec230923640533a3a.png](https://i-blog.csdnimg.cn/blog_migrate/1e74fce07fb230f63966fd17158ef87a.jpeg)
![93176c3159a61d83a226300994a5f075.png](https://i-blog.csdnimg.cn/blog_migrate/26d3b7a774cebb62bab1e46822047b28.jpeg)
![68a2011fed56bbea935da6818daea1f2.png](https://i-blog.csdnimg.cn/blog_migrate/7e3b64961f2018c24d5905b7f4ec73f3.jpeg)
![88d60f11c3559b2ac03315da3f1cb8ce.png](https://i-blog.csdnimg.cn/blog_migrate/ec6d678fd62f628b10d71482c8cfab02.jpeg)
![58c59b6429ae46a2b33ea6839b679f45.png](https://i-blog.csdnimg.cn/blog_migrate/23d2e0a5d5fed84bcf9d9333fa089304.jpeg)
no result due to invalid use of WHERE function
Select region, sum(area)
from bbc
where (select sum(area) from bbc) >15000000
group by region