【问题标题】: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 |
+-------------------+----------------------------+

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

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

【问题讨论】:

    标签: mysql count


    【解决方案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 用法。
    猜你喜欢
    • 2013-03-06
    • 2016-05-20
    • 1970-01-01
    • 1970-01-01
    • 2016-04-23
    • 1970-01-01
    • 2018-07-12
    • 1970-01-01
    • 2018-06-11
    相关资源
    最近更新 更多