我有以下的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