我的思路是先取出每組累加跟每組總數,再合成一張表進行除法
要注意取出數據時要找到能與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