[英]Presto Unnest varchar array field
我是 Presto 和存儲為 arrays 的數據的新手。 我有一個表,其中包含一個 varchar 列,其中包含如下所示的數據:
即申請可能因多種原因被拒絕。 我需要顯示“有多少申請因什么原因被拒絕”,即 output 應該如下所示:
我試過 unnest 但得到“不能取消嵌套類型:varchar”
SELECT *
FROM table
CROSS JOIN UNNEST(decline_reasons) AS t(value)
還嘗試強制轉換為數組,但得到“未知類型:數組”
SELECT cast(json_parse(decline_reasons) as array)
FROM table
將不勝感激提示/指導。
您可以通過以下方式將數據轉換為數組
cast(json_parse(decline_reasons) as array<varchar>)
然后,您將能夠對數組結果使用UNNEST
。
https://prestosql.io/docs/current/functions/json.html#json_parse
想出了如何排列和制作行。 計數現在將是容易的部分
SELECT split_b
FROM table
CROSS JOIN UNNEST(SPLIT(replace(replace(replace(json_format(cast(split(replace(replace(replace(regexp_replace(decline_reasons,'\s'),'"',''),'[',''),']',''),',') as json)),'[',''),']',''),'"',''),',')) AS t (split_b)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.