1.聚合函数
1.1 count函数统计
查询一共有多少名玩家信息count(主键)
SELECT COUNT(user_qq) FROM users
SELECT COUNT(*) FROM users
1.2 sum函数统计玩家游戏总分数
SELECT SUM(score) AS '总分数' FROM scores
WHERE user_qq='12301'
1.3 AVG函数统计id为12301玩家的平均分数
SELECT AVG(score) AS '平均分数' FROM scores
WHERE user_qq='12301'
1.4 MAX函数查询编号为1的游戏的最高分
SELECT MAX(score) AS '最高分数' FROM scores
WHERE gno=1
1.5 同时使用多种聚合函数查询id为12301的各项参数
SELECT SUM(score) AS '总分',
MAX(score) AS '最高分数' ,
AVG(score) AS '平均分数'
FROM scores
WHERE user_qq='12301'
2.在结果集内分组
查询每个玩家的总分,平均分,最高分(分类汇总)
SELECT user_qq,SUM(score) AS '总分',
MAX(score) AS '最高分数' ,
AVG(score) AS '平均分数'
FROM scores
GROUP BY user_qq
注意:关键在于GROUP BY
3.筛选分组结果
1. (查询平均分大于4000)的玩家QQ号,总分数,平均分数
SELECT user_qq,SUM(score) AS '总分',
MAX(score) AS '最高分数' ,
AVG(score) AS '平均分数'
FROM scores
GROUP BY user_qq
HAVING AVG(score)>4000
注意:在之前的基础上,关键在于HAVING+约束条件,进行分组结果的筛选,并写在GROUP BY之后
2.查询所有用户的平均分数和总分数,并按平均分数降序排序
SELECT user_qq,SUM(score) AS '总分',
MAX(score) AS '最高分数' ,
AVG(score) AS '平均分数'
FROM scores
GROUP BY user_qq
ORDER BY AVG(score) DESC
知识点总结: