[英]Pivoting AWS Redshift SUPER data
我有以下表結構:
server_id | server_databases |
---|---|
1 | [{“name”:“mssql”,“count”:12},{“name”:“postgresql”,“count”:1}] |
2 | [] |
3 | null |
結果我想收到什么(如果它是 null 或空 object 無關緊要,我想保留服務器 2 和 3):
server_id | 數據庫 |
---|---|
1 | {“mssql”:12,“postgresql”:1} |
2 | null |
3 | null |
我嘗試自己構建 json
SELECT server_id,
(
select '{' || listagg('"' || x.name || '":' || x.count, ',') || '}' as clientdatabases
from (
select cb."name"::varchar as name, sum(cb."count")::int as count from e.server_databases as cb group by name
) x
)
FROM my_table e
但它因有趣的錯誤而失敗
[XX000] 錯誤:由於內部錯誤,不支持查詢。 詳細信息:不支持的見證案例 其中:nested_decorrelate_calc_witness_unsupported|calc_witness
看起來 PartiQL 支持這種情況,但我不知道如何實現它。 我現在將使用 UDF。 但是,如果您可以幫助我提供“本機”解決方案,那就太棒了。
在計數中使用ISNULL
:
SELECT server_id,
(
select '{' || listagg('"' || x.name || '":' || x.count, ',') || '}' as clientdatabases
from (
select cb."name"::varchar as name, ISNULL(sum(cb."count")::int,0) as count from e.server_databases as cb group by name
) x
)
FROM my_table e
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.