【问题标题】:Mysql : Count Posts and Group by dateMysql:按日期计数帖子和分组
【发布时间】:2010-05-14 04:03:40
【问题描述】:

我不是很擅长sql,一般我用php来完成我的复杂任务,但是在这个任务中,有很多数据,所以使用php来统计帖子很慢。所以我想要一个按日期计算帖子的sql,但我在表中的日期列是php的时间戳(int)。我将创建帖子编号x日期图表

【问题讨论】:

    标签: sql mysql count group-by


    【解决方案1】:

    由于您不了解 SQL,您似乎对术语有很好的掌握。

    这样的事情应该可以工作:

      SELECT FROM_UNIXTIME(post_date, '%Y %D %M') AS POST_DATE,
             COUNT(post_id) AS POST_COUNT
        FROM posts
    GROUP BY POST_DATE
    

    【讨论】:

      【解决方案2】:

      不确定 MySQL,但在 postgres 中,您可以执行类似的操作(对于至少包含 id 和 php_timestamp 列的名为 posts 的表):

      SELECT COUNT(id), php_timestamp - (php_timestamp % 86400) AS base_date
      FROM posts
      GROUP BY php_timestamp - (php_timestamp % 86400)
      

      当然,强烈建议在表达式 php_timestamp - (php_timestamp % 86400) 上创建一个索引(但不确定是否可以在 MySQL 中创建一个)。这按 UTC 日期分组。

      【讨论】:

      • “此分组按 UTC 日期分组” - 您的查询中没有任何内容与 UTC 相关。
      • Unix 时间(PHP 使用)从 UTC 1970 年 1 月 1 日开始计算秒数。然后我将四舍五入到 UTC 中最近一天的午夜时间。
      猜你喜欢
      • 2011-07-21
      • 2012-04-14
      • 2020-11-18
      • 2014-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-10
      • 2022-12-01
      相关资源
      最近更新 更多