У меня есть следующий sql-оператор, который работает, но я хочу сгруппировать результаты с помощью YEAR (updated_at), MONTH (updated_at) и дать мне общее количество по месяцам года. То, что это должно сделать, это найти мне все результаты, где order_id существует более одного раза, а затем делать общее количество за каждый месяц года. Я думаю, что мне нужно будет сделать подзапрос, но все, что я пробовал, вызывает ошибку.SQL group by id затем группирует результаты по дате
SELECT `order_id` , `updated_at` , COUNT(*) AS grand_total1
FROM mg_sales_flat_shipment_track
GROUP BY `order_id`
HAVING COUNT(*) >1
ORDER BY updated_at DESC
Набор данных:
entity_id parent_id order_id track_number title carrier_code created_at updated_at
31468 33349 36055 31237970006263 UK Mail trackerl 2015-05-01 19:30:52 2015-05-01 19:30:52
31453 33348 36054 31237970006264 UK Mail trackerl 2015-05-01 19:30:49 2015-05-01 19:30:49
31414 33347 36052 31237970006273 UK Mail trackerl 2015-05-01 19:30:20 2015-05-01 19:30:20
31469 33346 36050 31237970006265 UK Mail trackerl 2015-05-01 19:30:52 2015-05-01 19:30:52
31461 33345 36049 31237970006266 UK Mail trackerl 2015-05-01 19:30:47 2015-05-01 19:30:47
31406 33344 36048 31237970006267 UK Mail trackerl 2015-05-01 19:30:14 2015-05-01 19:30:14
31404 33343 36047 31237970006268 UK Mail trackerl 2015-05-01 19:30:13 2015-05-01 19:30:13
31407 33342 36046 31237970006269 UK Mail trackerl 2015-05-01 19:30:15 2015-05-01 19:30:15
31462 33341 36045 31237970006270 UK Mail trackerl 2015-05-01 19:30:48 2015-05-01 19:30:48
31405 33340 36044 31237970006271 UK Mail trackerl 2015-05-01 19:30:14 2015-05-01 19:30:14
31383 33153 35837 31237970006197 UK Mail tracker1 2015-04-30 20:00:43 2015-04-30 20:00:43
31252 33153 35837 31237970006051 UK Mail tracker1 2015-04-29 20:00:25 2015-04-30 20:00:43
Я думаю, вам, возможно, придется использовать select month (updated_at) как month, year (updated_at) как год, а затем сказать GROUP By order_id, месяц –
Не могли бы вы рассказать мне, какие ошибки вы получили, чтобы я мог помочь вам более конкретно? –
Спасибо за отчет о состоянии. У вас есть * вопрос *? ПРИМЕЧАНИЕ. В показанном запросе значение, возвращаемое для столбца 'updated_at', * не * детерминировано. (Другие базы данных будут вызывать ошибку с этим SQL, и мы могли бы заставить MySQL также выставить ошибку, если мы установим 'sql_mode' для включения' ONLY_FULL_GROUP_BY'.) Показывая * пример * соответствующих значений столбца из таблицы и показывая * пример * ожидаемого набора результатов, предоставит более четкую спецификацию. Было бы еще лучше, если бы вы установили [SQL Fiddle] (http://sqlfiddle.com). – spencer7593