Mysql:按日期统计帖子和分组
我不太擅长sql,通常我使用php来完成复杂的任务,但是在这个任务中,有很多数据,所以使用php计算帖子的速度非常慢。所以我想要一个按日期统计post的sql,但我在表中的日期列是php的时间戳(int)。我会将post数字x日期图包装起来,因为我不懂sql,你似乎对这个术语有相当的理解 像这样的方法应该会奏效:Mysql:按日期统计帖子和分组,sql,mysql,count,group-by,Sql,Mysql,Count,Group By,我不太擅长sql,通常我使用php来完成复杂的任务,但是在这个任务中,有很多数据,所以使用php计算帖子的速度非常慢。所以我想要一个按日期统计post的sql,但我在表中的日期列是php的时间戳(int)。我会将post数字x日期图包装起来,因为我不懂sql,你似乎对这个术语有相当的理解 像这样的方法应该会奏效: SELECT FROM_UNIXTIME(post_date, '%Y %D %M') AS POST_DATE, COUNT(post_id) AS POST_
SELECT FROM_UNIXTIME(post_date, '%Y %D %M') AS POST_DATE,
COUNT(post_id) AS POST_COUNT
FROM posts
GROUP BY POST_DATE
不确定MySQL,但在postgres中,您可以执行以下操作(对于名为posts的表,至少包含列id和php_时间戳):
当然,强烈建议使用表达式php_timestamp-(php_timestamp%86400)上的索引(但不确定您是否可以在MySQL中创建索引)。此组按UTC中的日期分组。“此组按UTC中的日期分组”-您的查询中没有任何内容与UTC相关。Unix时间(PHP使用)计算从UTC 1970年1月1日起的秒数。然后我四舍五入到UTC中最近一天的午夜时间。
SELECT COUNT(id), php_timestamp - (php_timestamp % 86400) AS base_date
FROM posts
GROUP BY php_timestamp - (php_timestamp % 86400)