У меня есть некоторые данные json, которые содержат свойство 'характеры', и оно выглядит так:
select json_data['characters'] from latest_snapshot_events
Возвращает: [{"CHAR_STARS":1,"CHAR_A1_LVL":1,"ITEM_POWER":60,"CHAR_A3_LVL":1,"CHAR_TIER":1,"ITEM":10,"shards":0,"CHAR_TPIECES":0,"CHAR_A5_LVL":0,"CHAR_A2_LVL":1,"CHAR_A4_LVL":1,"ITEM_CATEGORY":"Character","ITEM_LEVEL":3},{"CHAR_STARS":1,"CHAR_A1_LVL":1,"ITEM_POWER":50,"CHAR_A3_LVL":1,"CHAR_TIER":1,"ITEM":39,"shards":0,"CHAR_TPIECES":0,"CHAR_A5_LVL":0,"CHAR_A2_LVL":1,"CHAR_A4_LVL":1,"ITEM_CATEGORY":"Character","ITEM_LEVEL":2},{"CHAR_STARS":1,"CHAR_A1_LVL":1,"ITEM_POWER":80,"CHAR_A3_LVL":1,"CHAR_TIER":1,"ITEM":6801450488388220,"shards":0,"CHAR_TPIECES":0,"CHAR_A5_LVL":1,"CHAR_A2_LVL":1,"CHAR_A4_LVL":1,"ITEM_CATEGORY":"Character","ITEM_LEVEL":4},{"CHAR_STARS":1,"CHAR_A1_LVL":1,"ITEM_POWER":85,"CHAR_A3_LVL":1,"CHAR_TIER":1,"ITEM":8355588830097610,"shards":0,"CHAR_TPIECES":5,"CHAR_A5_LVL":0,"CHAR_A2_LVL":1,"CHAR_A4_LVL":1,"ITEM_CATEGORY":"Character","ITEM_LEVEL":4}]
Это возвращается в одной строке.Мне нужна отдельная строка для каждого элемента в массиве.
Я обнаружил несколько SO-сообщений и других блогов, рекомендующих использовать unnest()
.Я пробовал это несколько раз и не могу получить результат, чтобы вернуться.Например, вот документация от presto .Нижняя крышка снимается как подставка для бокового обзора улья:
SELECT student, score
FROM tests
CROSS JOIN UNNEST(scores) AS t (score);
Поэтому я попытался применить это к моей таблице:
characters as (
select
jdata.characters
from latest_snapshot_events
cross join unnest(json_data) as t(jdata)
)
select * from characters;
, где json_data
- поле вlatest_snapshot_events, который содержит свойство 'characters', представляющее собой массив, подобный показанному выше.
Возвращает ошибку:
[Simba] AthenaJDBC Ошибка была выданаКлиент AWS Athena.SYNTAX_ERROR: строка 69:12: в списке псевдонимов столбцов есть 1 запись, но в 't' есть 2 доступных столбца
Как можно развернуть / разбить latest_snapshot_events.json_data['characters']
на несколько строк?