Задать вопрос
@FANTASANTA

Как получить сумму стоимости товаров из массива json?

В базе данных имеются такие данные:

id | data
1  |  products": [{"price": 1000}, {"price": 2000}]


Мне нужно получить сумму price (3000), я делаю так:
AnyModel::select(DB::raw('SUM(data->"$.products[*].price") as totalsales'));

Результат получаю 0
Как мне получить сумму всех price из массива json?
  • Вопрос задан
  • 252 просмотра
Подписаться 1 Простой 6 комментариев
Помогут разобраться в теме Все курсы
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • Shultais Education
    Продвинутый SQL
    1 месяц
    Далее
  • Merion Academy
    Основы реляционных баз данных SQL
    1 месяц
    Далее
Решения вопроса 1
@Akina
Сетевой и системный админ, SQL-программист.
SELECT test.id, SUM(jsontable.price) total_price
FROM test
CROSS JOIN JSON_TABLE(test.data,
                      '$.products[*]' COLUMNS (price INT PATH '$.price')) jsontable
GROUP BY test.id

fiddle
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы