使用MYSQL从一年中给定周中所有帖子的总和中选择,从周日开始

问题描述 投票:1回答:1

我试图从MYSQL输出一个数据表,显示在Wordpress网站上发布的所有帖子,总计按当年的一周。

我想确保我的查询计算的是从一年的第一个星期日开始的几周,以及从下一个星期日开始的每个连续的星期。

我已经设法将功能查询放在一起,但我对MYSQL很新,我不确定语法以及如何修改它。

我知道YEARWEEK()允许选择一个模式来识别一周的开始日期,即SELECT YEARWEEK('2019-11-23',0)AS'Mode 0';

这听起来就像我想要使用的那样,但我不知道如何根据我当前的代码(或者如果我已经拥有)实现这一点。

SUM(if ( (WEEKOFYEAR(p.post_date) =  1), 1, 0)) as Wk1, 
SUM(if ( (WEEKOFYEAR(p.post_date) =  2), 1, 0)) as Wk2,
SUM(if ( (WEEKOFYEAR(p.post_date) =  3), 1, 0)) as Wk3,
(this repeats for each week)

此查询生成的每周总计与相同数据的离线跟踪略有不同。我怀疑它与如何计算一周的开始有关。

mysql wordpress
1个回答
0
投票

我可能会发现一种确保周计数从周日开始的方法。您可能想尝试使用WEEK(date,mode)。例如:

SUM(if ( (WEEK(p.post_date,0) =  1), 1, 0)) as Wk1, 
SUM(if ( (WEEK(p.post_date,0) =  2), 1, 0)) as Wk2,
SUM(if ( (WEEK(p.post_date,0) =  3), 1, 0)) as Wk3,

我已经从'2019-01-01'开始测试了多个日期,它确实计算从今年第一个星期日开始的一周。因此,如果post_date在今年的'2019-01-01'到'2019-01-05'之间,它将标识为第0周,并且仅从'2019-01-06'开始识别第1周(这是第一个)今年的星期天)关于WEEK()函数的更多解释我参考这个链接MySQL 'WEEK()' Function

© www.soinside.com 2019 - 2024. All rights reserved.