0
我有一个mysql表,其中包含'created_at'和'type'等列。我想要做的是获得每周创建的总行数,并进一步将该数字按“类型”细分。MySQL分解组通过结果添加更多详细信息到分组
也就是说,如果我的数据如下:
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
从这个计算器的问题(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));
这是一个有点不同的,那么什么,我试图让,但它的东西,我仍然可以正常工作。但是,它不包括每周的总数(希望将所有我想要的数据返回到结果集中)。我会如何去做这件事?
因为我不知道'类型'中的值,所以我不想直接在查询中指定这些值,特别是因为可以随时间改变这些值。
在我的情况下使用一周没有工作,因为我的数据可以跨越年,WEEK()只出现在今年返回星期数。这与我所尝试的类似,但没有总结类型数量。 – Hawkeye001
我已更新答案 – scaisEdge