Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql:按日期统计帖子和分组_Sql_Mysql_Count_Group By - Fatal编程技术网

Mysql:按日期统计帖子和分组

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_

我不太擅长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_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)