【发布时间】:2021-12-28 19:51:30
【问题描述】:
我正在尝试取消透视表 TABLE_A 并向查询中添加其他列
TABLE_A:
| YEAR | ID | OCT | NOV | DEC | JAN | FEB | MAR | APR | MAY | JUN | JUL | AUG | SEP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2022 | 1 | 10 | 5 | 5 | 10 | 5 | 10 | 15 | 20 | 5 | 0 | 0 | 10 |
预期输出:
| ID | MONTHLY_NO | MONTH | START_DATE | YEAR |
|---|---|---|---|---|
| 1 | 10 | 10 | 10-01-2021 | 2021 |
| 1 | 5 | 11 | 11-01-2021 | 2021 |
| 1 | 5 | 12 | 12-01-2021 | 2021 |
| 1 | 10 | 1 | 01-01-2022 | 2022 |
| 1 | 5 | 2 | 02-01-2022 | 2022 |
| 1 | 10 | 3 | 03-01-2022 | 2022 |
| 1 | 15 | 4 | 04-01-2022 | 2022 |
| 1 | 20 | 5 | 05-01-2022 | 2022 |
| 1 | 5 | 6 | 06-01-2022 | 2022 |
| 1 | 0 | 7 | 07-01-2022 | 2022 |
| 1 | 0 | 8 | 08-01-2022 | 2022 |
| 1 | 10 | 9 | 09-01-2022 | 2022 |
我使用的查询:
SELECT ID,
MONTHLY_NO,
CASE
WHEN TGT_MONTH='JAN' THEN 1
WHEN TGT_MONTH='FEB' THEN 2
WHEN TGT_MONTH='MAR' THEN 3
WHEN TGT_MONTH='APR' THEN 4
WHEN TGT_MONTH='MAY' THEN 5
WHEN TGT_MONTH='JUN' THEN 6
WHEN TGT_MONTH='JUL' THEN 7
WHEN TGT_MONTH='AUG' THEN 8
WHEN TGT_MONTH='SEP' THEN 9
WHEN TGT_MONTH='OCT' THEN 10
WHEN TGT_MONTH='NOV' THEN 11
WHEN TGT_MONTH='DEC' THEN 12
END AS MONTH
FROM TABLE_A
UNPIVOT( MONTHLY_NO FOR TGT_MONTH IN (JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC));
如何将 START_DATE 和 YEAR 列添加到查询中?可以请教吗?
【问题讨论】:
标签: sql snowflake-cloud-data-platform