gpt4 book ai didi

MySQL 分解 Group By 结果以向分组添加更多详细信息

转载 作者:行者123 更新时间:2023-11-29 21:05:16 24 4
gpt4 key购买 nike

我有一个 mysql 表,其中包含“created_at”和“type”等列。我想做的是获取每周创建的总行数,并进一步按“类型”分割该数字。

也就是说,如果我的数据如下:

created_at   |  type
10/15/2015 car
10/15/2015 bike
10/16/2015 car
10/24/2015 car
10/24/2015 car
10/25/2015 car
10/26/2015 bike

我希望我的查询返回如下内容:

Week of    | Total  |  car  |  bike
10/15/2015 3 2 1
10/22/2015 4 3 1

从这个 stackoverflow 问题( How to group by week in MySQL? )中,我可以按周分组,但我很难按“类型”进一步分割结果。我得到的最接近的是:

SELECT
FROM_DAYS(TO_DAYS(created_at) -MOD(TO_DAYS(created_at) -1, 7)) AS week_of,
type,
COUNT(*) AS 'rows'
FROM mytable
GROUP BY FROM_DAYS(TO_DAYS(created_at) -MOD(TO_DAYS(created_at) -1, 7)), type
ORDER BY FROM_DAYS(TO_DAYS(created_at) -MOD(TO_DAYS(created_at) -1, 7));

这与我想要得到的有点不同,但我仍然可以使用它。但是,它不包括每周的总数(更希望在结果集中返回我想要的所有数据)。我该如何去做呢?

由于我不知道“type”中的值,因此我不想直接在查询中指定这些值,特别是因为这些值可能会随着时间的推移而更改。

最佳答案

使用分组和周

select week(created_at), type, count(*) 
from my_table
where year(created_at) = year(curdate())
group by week(created_at), type

关于MySQL 分解 Group By 结果以向分组添加更多详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36874843/

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