我无法通过对列进行分组来编写查询来计算百分比。
Itemname,value
A,3
B,2
A,7
B,8
输出应为
itemname,value,percentage
A,3,30
A,7,70
B,2,20
B,8,80
百分比是使用group by itemname(ex A)计算的。
答案 0 :(得分:3)
试试这个:
CREATE TABLE my_tab (
Itemname VARCHAR(1),
value INT
);
INSERT INTO my_tab VALUES ('A', 3);
INSERT INTO my_tab VALUES ('B', 2);
INSERT INTO my_tab VALUES ('A', 7);
INSERT INTO my_tab VALUES ('B', 8);
SELECT
mt.itemname,
mt.value,
mt.value * 100 / agg.value_sum AS percentage
FROM
my_tab mt
JOIN (SELECT
itemname,
SUM(value) AS value_sum
FROM my_tab
GROUP BY itemname
) agg ON (mt.itemname = agg.itemname)
;
检查SQLFiddle: SQLFiddle Example
输出:
Itemname value percentage A 3 30 A 7 70 B 2 20 B 8 80