如何按列组计算百分比

时间:2013-11-07 09:28:28

标签: sqlite

我无法通过对列进行分组来编写查询来计算百分比。

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)计算的。

1 个答案:

答案 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