Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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
Php MYSQL:按周间隔分组,其中大于周一_Php_Mysql_Sql_Date_Group By - Fatal编程技术网

Php MYSQL:按周间隔分组,其中大于周一

Php MYSQL:按周间隔分组,其中大于周一,php,mysql,sql,date,group-by,Php,Mysql,Sql,Date,Group By,假设我们有一个posts表,该表包含以下列:id、title、expires\u at。我们想显示每年每周有多少帖子没有“过期” 也许更简单的说法是:“一年中,如果在日期到期,那么每周开始的时候,按周分组的帖子数量就很好了。” 例如: ------------------------------------------------- | Year | Week | posts_not_expired | ------------|-----------|-------

假设我们有一个
posts
表,该表包含以下列:
id、title、expires\u at
。我们想显示每年每周有多少帖子没有“过期”

也许更简单的说法是:“一年中,如果
日期到期,那么每周开始的时候,按周分组的帖子数量就很好了。”

例如:

-------------------------------------------------
|   Year    |   Week    |   posts_not_expired   |
------------|-----------|-----------------------|
|   2017    |   01      |   22                  |
|   2017    |   02      |   103                 |
|   2017    |   03      |   7                   |
|   ...     |   ...     |   ...                 |
|   2009    |   52      |   63                  |
|-----------|-----------|-----------------------|   
到目前为止,我们拥有的:

SELECT
    COUNT(id) as posts_not_expired,
    YEAR(expires_at) * 100 as Year,
    YEARWEEK(expires_at) as Week,
FROM posts
GROUP BY Year, Week 
您可以使用统计给定周内未过期的帖子。(其中1=周日,2=周一,…7=周六)

您可以使用统计给定周内未过期的帖子。(其中1=周日,2=周一,…7=周六)


您尝试过SQL查询吗?是的,它失败了,我不想在这里用糟糕的SQL将答案弄乱。您能否提供一个小样本集,以创建此结果?把它放在a中会更好。@Sean上面的例子也会提供SQLFIDLE:-)这周的开始是星期天还是星期一?你尝试过SQL查询吗?是的,如果失败了,我不想在这里用糟糕的SQL把答案弄得乱七八糟。你能提供一个小样本集来创建这个结果吗?把它放在a中会更好。@Sean上面的例子还将提供SQLFIDLE:-)一周的开始是星期天还是星期一?哇。。。太简单了!谢谢。最后一件事,我如何将“周”的格式设置为周数而不是200917?使用
weekofyear
。哇。。。太简单了!谢谢。最后一件事,我如何将“Week”的格式设置为周数而不是200917?使用
weekofyear
SELECT
    YEAR(expires_at) as `Year`,
    WEEKOFYEAR(expires_at) as `Week`,
    SUM(DAYOFWEEK(expires_at) > 2) as `posts_not_expired`
FROM posts
GROUP BY YEAR(expires_at), WEEKOFYEAR(expires_at)