PostgreSQL中分组数据的查找比率



我想在按QY和Column2分组数据后找到比率。

每季度比率=要计算的(B/(B+C))的数量,即1-2021年比率为2000/(2000+3000)=0.4。

分组数据如下:

<表类> QY 第2栏数tbody><<tr>1 - 202110001 - 2021B20001 - 2021C30002 - 202150002 - 2021B30002 - 2021C4000

使用SUM和FILTER来获取所需的记录。像这样的代码应该可以工作:

WITH table_name(q, x, y) AS (
SELECT *
FROM
(VALUES
('1-2021','A',  1000),
('1-2021','B',  2000),
('1-2021','C',  3000),
('2-2021','A',  5000),
('2-2021','B',  3000),
('2-2021','C',  4000) 
)s
)
SELECT  q
,   ROUND(
SUM(y)  FILTER(WHERE x = 'B')
/   CAST(SUM(y) AS DECIMAL) 
,2) AS ratio
FROM    table_name
WHERE   x IN('B','C')
GROUP BY q
ORDER BY q;

CTE的存在只是为了模拟一个现有的表,只是为了测试。

最新更新