MYSQL之AVG的使用

本文介绍了一种SQL技巧,通过使用子查询和联接操作,实现将相同金额(amount)的所有行号(rownum)值相加后进行均分的方法。此方法解决了简单使用AVG函数无法达到的数据处理需求。
需求:把amount中值相等的rownum值相加然后均分
1、TEST表中数据如下: 
SELECT rownum , amount , sid FROM `test`
图片
2、目标如下:
图片 
我们要得到rownums数据

3、如果我们只是简单的用AVG来分组
SELECT AVG(rownum) AS rownums , COUNT(1) AS number FROM `test` GROUP BY amount 
效果如下:
图片 
 
达不到我们的目的【明显少了数据行】

修改我们的SQL:
SELECT us.rownum,us.amount,uu.rownums FROM test AS us LEFT JOIN 
(SELECT AVG(rownum) AS rownums,amount FROM `test` GROUP BY amount) AS uu ON us.amount =uu.amount  

PS: LEAST
(x,y,...)    
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值