sql GROUP BY -- Достать результаты суммирования, в виде ассоциативного массива -- пример запроса
Primary tabs
Forums:
Задача
Есть таблица Sale с полями id, amount, shop_id.
Нам нужно достать сумму сумм(amount), отдельно по каждому магазину(shop_id).
Как сделать это в одном sql-запросе?
Запрос
SELECT SUM(amount) FROM `sale` WHERE shop_id IN (1,2,3,4,5) GROUP BY shop_id;
В результате мы получим массив, в котором ключами будут shop_id, а значениями - результат функции SUM() всех amount из строк с соответствующим shop_id.
Такой массив получается благодаря инересному поведению GROUP BY. Если бы мы не использовали его в своём запросе, в результате получили бы одно число - общую сумму всех amount по всем shop_id
- Log in to post comments
- 4527 reads
vedro-compota
Thu, 07/05/2018 - 13:16
Permalink
для удобства чтения лучше
для удобства чтения лучше перед WHERE делать перенос строки с отступом -- или несколько переносом если требуется.
_____________
матфак вгу и остальная классика =)
melisa
Thu, 07/05/2018 - 14:55
Permalink
поправила
поправила