如何显示列的百分比

问题描述 投票:0回答:1

我想计算每个typeItem与所有typeItem相关的每个月的百分比,如何实现?

我有一个表,其中的typeItem,AMOUNT,月份按照以下方式显示

SELECT
    SUM(CASE WHEN MONTH = 1 THEN AMOUNT END) "JAN"
    SUM(CASE WHEN MONTH = 2 THEN AMOUNT END) "FEB"
...
FROM (SELECT AMOUNT, MONTH, ItemTYPE FROM MY TABLE)
GROUP BY typeItem

谁给我

OUTPUT:
ItemType  JAN   FEB  ...

A         123   456
B         234   567
...

-但我想:

SELECT
    SUM(CASE WHEN MONTH = 1 THEN AMOUNT END) "JAN"
--CALCULATE PERCENTAGE FOR JAN (AMOUNT ItemType/AMOUNT ALL ItemType) "JAN %"
    SUM(CASE WHEN MONTH = 2 THEN AMOUNT END) "FEB"
--CALCULATE PERCENTAGE FOR FEB(AMOUNT ItemType/AMOUNT ALL ItemType) "FEB %"
...
FROM (SELECT PRICE, MONTH, ItemTYPE FROM MY TABLE)
GROUP BY typeItem
OUTPUT:
ItemType  JAN  JAN%        FEB     FEB%  ...

A         123   0.11       456     0.15
B         234   0.13       567     0.16
...
sql oracle aggregate-functions percentage
1个回答
0
投票

您可以分开:

SELECT SUM(CASE WHEN MONTH = 1 THEN AMOUNT END) as "JAN",
       SUM(CASE WHEN MONTH = 1 THEN AMOUNT END) / SUM(AMOUNT) as "JAN",       
       SUM(CASE WHEN MONTH = 2 THEN AMOUNT END) as "FEB",
       SUM(CASE WHEN MONTH = 2 THEN AMOUNT END) / SUM(AMOUNT) as "FEB",
       . . .
FROM T
WHERE MONTH IN (1, 2, . . . )
GROUP BY typeItem
© www.soinside.com 2019 - 2024. All rights reserved.