按明显周数计算日名的出现次数

时间:2012-03-06 13:04:43

标签: mysql count

如果这个问题措辞严厉,请提前道歉!

我有一个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 |
+-------------------+----------------------------+

按周分组并没有解决问题。我觉得好像我需要“计算哪一周不同”,但我不确定这是否可能。

非常感谢任何指导,谢谢!

2 个答案:

答案 0 :(得分:1)

尝试计算datetime字段的不同值(仅限日期部分)。有关COUNT(DISTINCT expr,[expr...])DATE(expr)的更多信息仅返回日期时间字段中的日期部分。

SELECT dayname(datetime), COUNT(distinct date(datetime)) 
FROM mytable GROUP BY dayname(datetime);

答案 1 :(得分:0)

您通常会按照您不计算的内容进行分组。