按不同周计算日名称的出现次数
Posted
技术标签:
【中文标题】按不同周计算日名称的出现次数【英文标题】:Counting Occurrences of Day Names By Distinct Weeks 【发布时间】:2012-03-06 13:04:43 【问题描述】:如果这个问题措辞不当,请提前道歉!
我有一个带有日期时间字段的 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 |
+-------------------+----------------------------+
按周分组并不能解决问题。我觉得好像我需要“计算一周的不同之处”,但我不确定这是否可能。
非常感谢任何指导,谢谢!
【问题讨论】:
【参考方案1】:尝试计算 datetime
字段的不同值(仅限日期部分)。有关仅从日期时间字段返回日期部分的 COUNT(DISTINCT expr,[expr...])
和 DATE(expr)
的更多信息。
SELECT dayname(datetime), COUNT(distinct date(datetime))
FROM mytable GROUP BY dayname(datetime);
【讨论】:
啊!现在这很有意义。 @Chriseyre2000 说我应该按我不计数的内容进行分组是正确的。非常感谢您。【参考方案2】:你通常会根据你没有计算在内的东西分组。
【讨论】:
此查询提供相同的结果(除了以不同的顺序列出日期名称)。不过,感谢您解释正确的 GROUP BY 用法。以上是关于按不同周计算日名称的出现次数的主要内容,如果未能解决你的问题,请参考以下文章