我的思路是先取出每组累加跟每组总数,再合成一张表进行除法
要注意取出数据时要找到能与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