示例
示例
SELECT product_id,
SUM(CASE WHEN month = 1 THEN qty ELSE 0 END) AS m1,
SUM(CASE WHEN month = 2 THEN qty ELSE 0 END) AS m2,
SUM(CASE WHEN month = 3 THEN qty ELSE 0 END) AS m3
FROM sales
WHERE year = 2024
GROUP BY product_id;| 原理 | 条件求和把行值放到对应列 |
|---|---|
| 动态列 | 列数固定需预先知道维度值;动态透视要在应用层拼 SQL |
| 替代 | PG 可用 crosstab(tablefunc 扩展) |