【问题标题】:Mysql query to get count for last weekMysql查询以获取上周的计数
【发布时间】:2013-04-02 15:34:18
【问题描述】:

我正在尝试统计上周的访问次数。

到目前为止,我有这个工作:

SELECT FROM_UNIXTIME(login),COUNT(*)
FROM users
WHERE FROM_UNIXTIME(login) >= (CURDATE() - INTERVAL DAYOFWEEK(CURDATE())+6 DAY)
GROUP BY DAYOFWEEK(FROM_UNIXTIME(login));

结果:

+----------------------+----------+
| FROM_UNIXTIME(login) | COUNT(*) |
+----------------------+----------+
| 2013-04-08 12:49:04  |        1 |
| 2013-04-10 17:29:21  |        2 |
| 2013-04-05 21:27:00  |        1 |
+----------------------+----------+

问题:

-表格不按日期排序;

-我想显示所有 7 行,即使 count value='0'。

我该如何解决这个问题?提前致谢!

[更新]

按日期排序:

ORDER BY FROM_UNIXTIME(login);

只需要显示一周的所有 7 行!

【问题讨论】:

  • 我认为如果 count 为 0 就不可能得到一行,或者至少不会有很复杂的查询(如果可能的话)。计数是选择的结果,如果没有特定日期的记录,则根本没有记录可显示计数
  • 你需要使用order bylimit子句
  • @TNK,谢谢! order by 现在正在工作。只需要弄清楚如何显示整周的所有 7 行...

标签: mysql count group-by


【解决方案1】:

您可以使用此答案中的查询,该查询可以生成日期列表,然后将您的查询加入其中:

generate days from date range

【讨论】:

    猜你喜欢
    • 2013-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多