在Postgresql中将行值设置为列标题

b09cbbtk  于 2024-01-07  发布在  PostgreSQL
关注(0)|答案(1)|浏览(170)

使用此查询

SELECT 
    ValuationDate, 
    SUM(TotalQuantitySold) AS Units, 
    platformproductid 
FROM 
    TableA 
WHERE
    ValuationDate BETWEEN '01-12-2023' AND '28-12-2023'
GROUP BY 
    valuationdate, platformproductid

字符串
| 评估日期|单位|PlatformProductId|
| --|--|--|
| 2023-12-01 2023-12-01 2023-12-01| 58 | 40006 |
| 2023-12-02 2023-12-02| 69 | 40006 |
| 2023-12-03 - 01 -03 - 01 - 0| 20 | 40006 |
| 2023-12-01 2023-12-01 2023-12-01| 12 | 40010 |
| 2023-12-02 2023-12-02| 1 | 40010 |
但我想要这种格式的输出。
| PlatformProductId| 2023年12月1日|2023年12月02日|2023年12月3日|
| --|--|--|--|
| 40006 | 58 | 69 | 20 |
| 40010 | 12 | 1 | 12 |
如何做到这一点?

gcmastyq

gcmastyq1#

可能下面的查询ll工作?

SELECT
    platformproductid,
    SUM(CASE WHEN ValuationDate = '2023-12-01' THEN TotalQuantitySold ELSE 0 END) AS Units_2023_12_01,
    SUM(CASE WHEN ValuationDate = '2023-12-02' THEN TotalQuantitySold ELSE 0 END) AS Units_2023_12_02,
    -- Add similar lines for other dates
    SUM(TotalQuantitySold) AS TotalUnits
FROM
    TableA
WHERE
    ValuationDate BETWEEN '2023-12-01' AND '2023-12-28'
GROUP BY
    platformproductid;

字符串

相关问题