需求:把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,...)    
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
Logo

更多推荐