MySQL 分组累加


 

 我的思路是先取出每组累加跟每组总数,再合成一张表进行除法

要注意取出数据时要找到能与tb_id_num 关联的参数值

1,求出分组累加

SELECT id,(
SELECT SUM(num)
FROM tb_id_num 
WHERE `name`=c.name AND id<=c.id) total
FROM tb_id_num c

 2,求出分组求和

SELECT name,SUM(num) sum_num
FROM 
tb_id_num
GROUP  BY `name`

 

 3,合成一张表并查询

SELECT a.id,a.num,a.`name`
FROM
tb_id_num a LEFT JOIN (SELECT name,SUM(num) sum_num FROM tb_id_num GROUP BY `name`) b ON a.name = b.name
LEFT JOIN
(
SELECT id,
(
SELECT SUM(num)
FROM tb_id_num 
WHERE `name`=c.name AND id<=c.id) total FROM tb_id_num c) d
ON a.id = d.id
WHERE (d.total / b.sum_num )>0.6

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM