My SQL 汇总和分组数据

 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

 

 知识点总结:







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潇潇雨歇_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值