我有以下的SQL語句可以工作,但是我然後想按YEAR(updated_at),MONTH(updated_at)將結果分組,並按年份給我一個總數。那麼應該做的就是找到我order_id存在多於一次的所有結果,然後再爲每年的每個月執行一次總計。我想我需要做一個子查詢,但是我嘗試過的所有東西都會引發錯誤。按分組的SQL組,然後按日期分組結果
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
我想你可能不得不使用選擇月份(updated_at)作爲年份的月份,年份(updated_at),然後說GROUP by order_id,月份 –
你能告訴我你有哪些錯誤,所以我可以幫助你更具體嗎? –
感謝您的狀態報告。你有*問題*嗎?注意:在顯示的查詢中,'updated_at'列返回的值是* not * deterministic。 (其他數據庫會給這個SQL引發一個錯誤,如果我們設置'sql_mode'包含'ONLY_FULL_GROUP_BY',我們也可能會讓MySQL拋出一個錯誤。)顯示錶中相關列值的*例*,顯示預期結果集的*示例*將提供更清晰的規範。如果你設置一個[SQL小提琴](http://sqlfiddle.com),那會更好。 – spencer7593