powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / SUM / IF / CASE WHEN...
2 сообщений из 2, страница 1 из 1
SUM / IF / CASE WHEN...
    #40112743
eluzh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрые люди, помогите пжста разобраться с агрегатными функциями.
У меня есть таблица (deals) с датой (created_at) названием товара (a.name) и кол-вом (amount).
Мне необходимо сделать запрос и вытащить сколько тавара было завезено за последние 10 часов / 20 часов / 30 часов.
я никак не могу понять как выставить SUM amount за последние 10 / 20 и 30 часов в created_at
если выбрать только 10 часов то это просто
SELECT
a.name,
SUM(amount) as 10hrs
FROM deals
where created_at >= now() - INTERVAL 10 HOUR
GROUP BY a.nme

но мне надо, чтоб в одном запросе вытащить и 20 часов и 30 часов. Результат должен быть похож на это
a.name | 10hrs | 20hrs | 30hrs
ban | 10 | 12 | 15
tilt | 2 | 5 | 10
...
Рейтинг: 0 / 0
SUM / IF / CASE WHEN...
    #40112798
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используй условную агрегацию:

Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT a.name,
       SUM(CASE WHEN created_at >= NOW() - INTERVAL 10 HOUR THEN amount ELSE 0 END) 10hrs,
       SUM(CASE WHEN created_at >= NOW() - INTERVAL 20 HOUR THEN amount ELSE 0 END) 20hrs,
       SUM(CASE WHEN created_at >= NOW() - INTERVAL 30 HOUR THEN amount ELSE 0 END) 30hrs
FROM deals
WHERE created_at >= NOW() - INTERVAL 30 HOUR
GROUP BY a.name
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / SUM / IF / CASE WHEN...
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]