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)