#mysql #sql #amazon-athena #presto
Вопрос:
Привет, я пытаюсь извлечь значения из столбца Nest Json таблицы и суммировать их. Который выглядит так, как показано ниже,
ID Details Created_At
2345 2021-05-31
3243 2021-06-02
3243 2021-06-02
3243 2021-06-02
Здесь столбец «Сведения» — это столбец, в котором в каждой строке содержатся значения json в формате ниже
{
"new_products": [
{
"bucket": "READY",
"sku": "46123445323423",
"overaged": 0,
"transfer": 0,
"total_count": 14,
"actual_count": 14,
"lock_quantity": 0
},
],
"old_products": [
{
"bucket": "READY",
"sku": "451902224524",
"overaged": 0,
"transfer": 0,
"total_count": 59,
"actual_count": 59,
"lock_quantity": 0
},
{
"bucket": "READY",
"sku": "46123445323423",
"overaged": 0,
"transfer": 0,
"total_count": 14,
"actual_count": 14,
"lock_quantity": 0
},
{
"bucket": "READY",
"sku": "42342361484",
"overaged": 0,
"transfer": 0,
"total_count": 29,
"actual_count": 29,
"lock_quantity": 0
},
{
"bucket": "READY",
"sku": "23234234342",
"overaged": 0,
"transfer": 0,
"total_count": 57,
"actual_count": 57,
"lock_quantity": 0
}
]
}
Чего я смог достичь в своем запросе :
SELECT ID,
Created_At,
(json_extract(Details,'$.old_products') ) AS column
FROM Table)
Это просто извлекает значения «old_products» в новом столбце,
Но я пытаюсь суммировать все значения total_count, actual_count из ключевых «old_products»,»new_products» каждой строки в новый столбец.
Как этого можно достичь?
Комментарии:
1. Выберите одну СУБД — либо MySQL, либо RedShift. Для MySQL — укажите точную версию. Предоставьте примеры данных не как значение, а как СОЗДАТЬ ТАБЛИЦУ ВСТАВИТЬ В сценарии.
2. можете ли вы поделиться выводом образца на основе ваших данных образца?