powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос: просуммировать по месяцу
7 сообщений из 7, страница 1 из 1
Запрос: просуммировать по месяцу
    #39445190
LiYing
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть простой запрос, выбирающий оплаты и их даты по id дела:
Код: sql
1.
2.
3.
4.
SELECT payment, date_payment
FROM payments
WHERE case_id=777 
ORDER BY date_payment


paymentdate_payment123.192015-01-01345.492015-01-02146362.052015-12-016750.582015-12-131523.092015-12-14157524.192016-01-01150413.492016-02-01
Можно ли и как средствами SQL выбрать суммы оплат за каждый месяц каждого года?
Для примера выше должно получиться:
paymentdate_payment_YYYY_MM468.682015-01154635.722015-12157524.192016-01150413.492016-02
Подскажите, как это реализовать, пожалуйста!
...
Рейтинг: 0 / 0
Запрос: просуммировать по месяцу
    #39445203
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DATE_FORMAT() + GROUP BY + SUM()
...
Рейтинг: 0 / 0
Запрос: просуммировать по месяцу
    #39445218
LiYing
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaDATE_FORMAT() + GROUP BY + SUM()
Код: sql
1.
2.
3.
4.
5.
SELECT SUM(payment), DATE_FORMAT(date_payment,"%Y-%m") ym
FROM payments
WHERE case_id=777 
GROUP BY ym
ORDER BY ym


Спасибо. Это правильное решение?
...
Рейтинг: 0 / 0
Запрос: просуммировать по месяцу
    #39445223
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вполне. Только ORDER BY здесь избыточен - группировка выполняет одновременно и сортировку, повторно этого делать не требуется, выражение сортировки-то одно и то же.
Ну и алиас полю вывода суммы, наверное, не помешает.
...
Рейтинг: 0 / 0
Запрос: просуммировать по месяцу
    #39445225
LiYing
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Большое спасибо!
...
Рейтинг: 0 / 0
Запрос: просуммировать по месяцу
    #39445237
AkinaТолько ORDER BY здесь избыточен - группировка выполняет одновременно и сортировку, повторно этого делать не требуется, выражение сортировки-то одно и то же. Я бы не стал завязываться на этот побочный эффект. А вдруг в следующем выпуске MySQL научится делать hash group by и сортировка при группировке выполняться не будет (как это было, например, в Oracle при переходе с версии 9i на 10g)? В стандарте сказано вполне себе однозначно - сортировку результирующего набора данных обеспечивает и гарантирует только предложение ORDER BY...
...
Рейтинг: 0 / 0
Запрос: просуммировать по месяцу
    #39445246
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В данном конкретном случае - может и да. Но ORDER BY производит сортировку безусловно, не обращая внимания на совпадение выражений, что на больших наборах даёт изрядный и в пень не нужный оверхед.

Добрый Э - Эхвдруг в следующем выпуске MySQL ... сортировка при группировке выполняться не будетВ будущих версиях, видимо, сделают хитрее (во всяком случае, если верить текущим бетам) - если в выражении группировки присутствует модификатор ASC или DESC, то результат сортируется по выражению группировки, а если модификатор в выражении группировки отсутствует, то сортировка не выполняется. И это даже описано в драфте 8-й версии мануала.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос: просуммировать по месяцу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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