sql sum条件求和_SQL汇总分析

本文介绍了SQL中的汇总函数,如count、sum、avg、max和min的用法,强调了它们在处理数据时的注意事项。此外,还讨论了分组、having条件、结果排序以及数据筛选的操作,帮助理解如何用SQL解决实际业务问题,并提到了SQLZOO练习中的相关知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.汇总分析

793d17564768e6497a7cc7e74ae63d83.png
  • 汇总函数
    • count 求某列的行数

2107a6c8559c2bb20c42c182527887fe.png
默认不会计算值为空值的数据

14a0e2bdf3e26ee56342e2a899311f74.png
*会汇总全部行包括空值
    • sum 对某列数据求和
    • avg 求某列数据的平均值
    • max 求某列数据的最大值
    • min 求某列数据的最小值
count(distinct name) 就不会计算重复值

注意:所有的汇总函数如果括号里是列名,那么计算是回排除空值null然后计算

注意:sum和avg只能对数值类型的列计算,另三个不需要

2.分组

3d58fec951ff8ac879b0e23d03dae2e8.png

660d73f09020c2dcc309db581a565e76.png
注意语句执行顺序!

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

select 性别,count(*)
from student
group by 性别
having count(*)>1;    对分组结果指定条件

4. 用sql解决业务问题

  • 翻译成大白话
  • 写出分析思路
  • 最后写出对应sql子句

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

select 查询结果
from 表
where 查询条件
group by 分组
having 对分组结果指定条件
order by 对查询结果排序
  • desc降序 asc升序

31c37655212bbd7c86f667dc83ad8327.png
注意运行顺序!order by是在select之后运行的
多列名排序:
order by 成绩 asc, 课程号 desc;
  • 空值null在排序时会出现在第一行
  • 从查询结果中取出指定行:limit
select *
from score
limit 2(只输出前两行)

6.如何看懂报错信息

常见错误:

  • 在group by 中不能使用 select 里的别名 (group by 和 having运行时select还没运行)
  • 在where中不能使用聚合函数
  • 字符串类型的数字在计算最大值或者排序的时候会以字符串类型比较

SQLZOO练习记录:

769d0463339d1d21999d0d44a6fb0db0.png

4ef4202e0579d8a6ae7984142a1f99f2.png

0fc54b5716aebdaf0a7c998e0460c4ba.png

ef09be73a01d2c2367bdbcf8223c75ee.png

7f4c045515672e375629112af31f0c33.png

88e175c3177f6ad7ac5ef7202eee4289.png
注意12题中,一个单引号在字符串需要用连续两个单引号代表!!

fe1a56349b5b7a563354e84fa10de94f.png

注意14题知识点,

subject in ('Physics','Chemistry')返回值(0或1)会对没一个subject做一个if的判断,有返回1,没有返回0,再用order by 把这些值排序在下面

因此,返回值是0的会排在前面,返回值是1的就排在后面

(很简单的不放了,意义不大)

09e05682758fdb463a6ff5dbd4924319.png

957859e42db9ca80dc1906f6c82f0540.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值