MySQL——聚合函数及分组过滤

聚合函数(常用)

|----------|--------|
| 函数名称 | 描述 |
| COUNT() | 计数 |
| SUM() | 求和 |
| AVG() | 平均值 |
| MAX() | 最大值 |
| MIN() | 最小值 |
| ... | ... |

sql 复制代码
-- 都能够统计表中的数据(查询表中有多少个记录)
SELECT COUNT(studentname) FROM student  -- COUNT(字段),会忽略所有的NULL值 
SELECT COUNT(*) FROM student  -- COUNT(*) ,不会忽略NULL值,本质是计算行数
SELECT COUNT(1) FROM result  -- COUNT(1),不会忽略NULL值

SELECT sum(studentresult) AS 总和 FROM result
SELECT avg(studentresult) AS 平均分 FROM result
SELECT max(studentresult) AS 最高分 FROM result
SELECT min(studentresult) AS 最低分 FROM result

分组和过滤

sql 复制代码
-- 查询不同科目的平均分,最高分和最低分,平均分大于80
-- 核心:(根据不同的课程分组)
SELECT subjectname,AVG(studentresult) AS 平均分,MAX(studentresult) AS 最高分,MIN(studentresult) AS 最低分
FROM result r
INNER JOIN `subject` sub
ON r.`subjectno` = sub.`subjectno`
GROUP BY r.`subjectno`  -- 通过什么字段来分组
HAVING 平均分>80
相关推荐
Irissgwe7 分钟前
redis之常见数据类型
数据库·redis·缓存
2301_7735536210 分钟前
CSS如何对用户访问过的链接进行降级颜色处理_使用-visited伪类改变颜色
jvm·数据库·python
2301_8152795218 分钟前
Golang怎么理解Go的sync.Pool底层_Golang如何理解Pool的本地缓存和GC清理机制【详解】
jvm·数据库·python
2301_7641505618 分钟前
MySQL迁移过程如何避免数据不一致_利用强一致性备份方案
jvm·数据库·python
m0_7164300721 分钟前
Redis如何处理预热失效引起的开局雪崩
jvm·数据库·python
m0_3776182324 分钟前
c++文件锁使用方法 c++如何实现多进程文件同步
jvm·数据库·python
gmaajt29 分钟前
mysql多字段搜索如何设计组合索引_mysql索引查询加速
jvm·数据库·python
2301_7775993729 分钟前
MySQL如何快速排查慢查询安全隐患_分析slow_query_log进行优化
jvm·数据库·python
m0_7478545231 分钟前
如何检测受保护链接(如 Twitter)的可访问性
jvm·数据库·python
baidu_3409988233 分钟前
宝塔面板如何设置网站访问密码_配置Nginx认证保护目录
jvm·数据库·python