gpt4 book ai didi

mysql - SQL 按 id 分组,然后按日期对结果进行分组

转载 作者:行者123 更新时间:2023-11-29 22:28:23 24 4
gpt4 key购买 nike

我有以下有效的sql语句,但是我想按年(updated_at)、月(updated_at)对结果进行分组,并按一年中的月份给出总计。然后应该做的是找到 order_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

最佳答案

您的查询将为您提供不可靠的结果,因为 updated_at 未包含在 group by 子句中,也未在聚合函数中使用。

如果您想要的是对于具有多个条目的所有 order_ids,获取一年中每个月的计数,那么它看起来像这样:

select year(updated_at) y, month(updated_at) m, count(*) from
( SELECT `order_id` , COUNT( * ) AS grand_total
FROM mg_sales_flat_shipment_track
GROUP BY `order_id`
HAVING COUNT( * ) >1
) q1
inner join mg_sales_flat_shipment_track t
on q1.order_id = t.order_id
group by year(updated_at), month(updated_at)
order by year(updated_at) desc, month(updated_at) desc;

为了获得任何进一步的帮助,您需要提供表定义、一些示例数据以及您尝试提取的结果。

fiddle here

关于mysql - SQL 按 id 分组,然后按日期对结果进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30055537/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com