我在 Presto 有一張桌子,看起來像
| 日期 | 費率 |
|---|---|
| 2022 年 1 月 1 日 | {"USD":"725.275","GBP":"29.275000000000002","CAD":"0.713352"} |
| 2022 年 1 月 2 日 | {"USD":"745.275","GBP":"40.275000000000002","CAD":"0.813352"} |
我希望它類似于查詢的輸出是:
Date Currency Rate
1/1/2022 USD 725.275
1/2/2022 USD 745.275
1/1/2022 GBP 29.275
1/2/2022 GBP 40.275
1/1/2022 CAD 0.713352
1/2/2022 CAD 0.813352
但似乎無法使用他們的檔案弄清楚。
uj5u.com熱心網友回復:
假設Rates是JSON型別的列(否則使用json_parse)并且您不想使用json_extract_scalar( json_extract_scalar(Rates, '$.USD'), json_extract_scalar(Rates, '$.GBP'), ...)“手動”處理每種貨幣 - 處理“動態 json”的常用方法是將其轉換為map(例如map(varchar, double)在這種情況下)并使用unnest:
WITH dataset ( Date,Rates) AS (
VALUES ('1/1/2022', json '{"USD":"725.275","GBP":"29.275000000000002","CAD":"0.713352"}'),
('1/2/2022', json '{"USD":"745.275","GBP":"40.275000000000002","CAD":"0.813352"}')
)
--query
select date, currence, rate
from dataset
cross join unnest(cast(rates as map(varchar, double))) t(currence, rate)
輸出:
| 日期 | 貨幣 | 速度 |
|---|---|---|
| 2022 年 1 月 1 日 | 加元 | 0.713352 |
| 2022 年 1 月 1 日 | 英鎊 | 29.275000000000002 |
| 2022 年 1 月 1 日 | 美元 | 725.275 |
| 2022 年 1 月 2 日 | 加元 | 0.813352 |
| 2022 年 1 月 2 日 | 英鎊 | 40.275 |
| 2022 年 1 月 2 日 | 美元 | 745.275 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/476296.html
上一篇:自定義回傳MongoDB聚合
