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

原文地址:https://www.cnblogs.com/jescs/p/12162267.html