如何在 Snowflake 的两列中创建包含数据的解压缩 table?
How do I create an unzipped table with data in two columns in Snowflake?
我从下面的 table 中获得了这些数据。
|姓名(第 1 栏) |值(第 2 列)| Customer_ID(第 3 列)|
| account_status |活跃 |第1234章|
| card_template |奖励 |第1234章|
| customer_creation_date | 2022 年 1 月 8 日 |第1234章|
|enroll_store_code | pxweb |第1234章|
| enroll_store_name |网址 |第1234章|
| push_opt_in |是 |第1234章|
| account_status |不活跃 | 3421 |
| card_template | PX 奖励 | 3421 |
| customer_creation_date | 2022 年 1 月 8 日 | 3421 |
| enroll_store_code | pxweb | 3421 |
| enroll_store_name |网址 | 3421 |
| push_opt_in |是 | 3421 |
我想将此数据转换为新的 table 格式如下;
客户编号 | account_status | card_template | customer_creation_date | enroll_store_code | enroll_store_name | push_opt_in |
第 1234 章活跃 | PX 奖励 | 2022 年 1 月 8 日 | pxweb |网址 |是
此处需要旋转逻辑:
SELECT
Customer_ID,
MAX(CASE WHEN Name = 'account_status' THEN VALUE END) AS account_status,
MAX(CASE WHEN Name = 'card_template' THEN VALUE END) AS card_template,
MAX(CASE WHEN Name = 'customer_creation_date' THEN VALUE END) AS customer_creation_date,
MAX(CASE WHEN Name = 'enroll_store_code' THEN VALUE END) AS enroll_store_code,
MAX(CASE WHEN Name = 'enroll_store_name' THEN VALUE END) AS enroll_store_name,
MAX(CASE WHEN Name = 'push_opt_in' THEN VALUE END) AS push_opt_in
FROM yourTable
GROUP BY Customer_ID;
我从下面的 table 中获得了这些数据。
|姓名(第 1 栏) |值(第 2 列)| Customer_ID(第 3 列)|
| account_status |活跃 |第1234章|
| card_template |奖励 |第1234章|
| customer_creation_date | 2022 年 1 月 8 日 |第1234章|
|enroll_store_code | pxweb |第1234章|
| enroll_store_name |网址 |第1234章|
| push_opt_in |是 |第1234章|
| account_status |不活跃 | 3421 |
| card_template | PX 奖励 | 3421 |
| customer_creation_date | 2022 年 1 月 8 日 | 3421 |
| enroll_store_code | pxweb | 3421 |
| enroll_store_name |网址 | 3421 |
| push_opt_in |是 | 3421 |
我想将此数据转换为新的 table 格式如下;
客户编号 | account_status | card_template | customer_creation_date | enroll_store_code | enroll_store_name | push_opt_in | 第 1234 章活跃 | PX 奖励 | 2022 年 1 月 8 日 | pxweb |网址 |是
此处需要旋转逻辑:
SELECT
Customer_ID,
MAX(CASE WHEN Name = 'account_status' THEN VALUE END) AS account_status,
MAX(CASE WHEN Name = 'card_template' THEN VALUE END) AS card_template,
MAX(CASE WHEN Name = 'customer_creation_date' THEN VALUE END) AS customer_creation_date,
MAX(CASE WHEN Name = 'enroll_store_code' THEN VALUE END) AS enroll_store_code,
MAX(CASE WHEN Name = 'enroll_store_name' THEN VALUE END) AS enroll_store_name,
MAX(CASE WHEN Name = 'push_opt_in' THEN VALUE END) AS push_opt_in
FROM yourTable
GROUP BY Customer_ID;