如果这个问题措辞严厉,请提前道歉!
我有一个MySQL表,它有一个日期时间字段。在不同的几周内,如何计算每天名称的出现次数?
以下是我正在尝试的查询,以及仅仅超过2周的数据所提供的结果。它(显然)计算每个记录的每次出现,而我希望输出为2或3。
SELECT dayname(datetime), COUNT(dayofweek(datetime))
FROM mytable GROUP BY dayofweek(datetime);
+-------------------+----------------------------+
| dayname(datetime) | count(dayofweek(datetime)) |
+-------------------+----------------------------+
| Monday | 404 |
| Tuesday | 275 |
| Wednesday | 251 |
| Thursday | 196 |
| Friday | 201 |
| Saturday | 128 |
+-------------------+----------------------------+
按周分组并没有解决问题。我觉得好像我需要“计算哪一周不同”,但我不确定这是否可能。
非常感谢任何指导,谢谢!
答案 0 :(得分:1)
尝试计算datetime
字段的不同值(仅限日期部分)。有关COUNT(DISTINCT expr,[expr...])
和DATE(expr)
的更多信息仅返回日期时间字段中的日期部分。
SELECT dayname(datetime), COUNT(distinct date(datetime))
FROM mytable GROUP BY dayname(datetime);
答案 1 :(得分:0)
您通常会按照您不计算的内容进行分组。