php - 按日期获取打开和关闭的帖子计数(间隔 1 周)?

标签 php mysql

我需要获取已关闭和打开的帖子的帖子计数,按日期分组,间隔为 1 周。我现在得到的是。

enter image description here

我想要的是这样的。

enter image description here

抱歉,解释不好。 谢谢!

最佳答案

请尝试一下:

SELECT 
date_posts - INTERVAL WEEKDAY(date_posts) DAY AS date_start,
date_posts + INTERVAL (6 - WEEKDAY(date_posts)) DAY AS date_start,
COUNT(*) totalPosts,
COUNT(CASE WHEN Close_count = 1 THEN 1 END) closeCount,
COUNT(CASE WHEN Open_count = 1 THEN 1 END) openCount
FROM your_table
GROUP BY YEARWEEK(date_posts,1);

注意:

YEARWEEK(date) 函数假定开始日期是星期日

YEARWEEK(date,1) 函数假定开始日期为星期一

WEEKDAY(date) 函数返回相应周的日期索引,假设 Monday 作为一周的开始日。它返回0表示星期一1表示星期二......以及6 > 周日

编辑:

对于日期范围搜索:

SELECT 
date_posts - INTERVAL WEEKDAY(date_posts) DAY AS date_start,
date_posts + INTERVAL (6 - WEEKDAY(date_posts)) DAY AS date_start,
COUNT(*) totalPosts,
COUNT(CASE WHEN Close_count = 1 THEN 1 END) closeCount,
COUNT(CASE WHEN Open_count = 1 THEN 1 END) openCount
FROM your_table
WHERE date_posts >= YOUR_START_DATE - INTERVAL WEEKDAY(YOUR_START_DATE) DAY
AND date_posts <= YOUR_END_DATE + INTERVAL (6 - WEEKDAY(YOUR_END_DATE)) DAY 
GROUP BY YEARWEEK(date_posts,1);

因此,基于此,如果您想获取过去 5 周(包括本周)的结果,您需要运行以下查询:

SELECT 
date_posts - INTERVAL WEEKDAY(date_posts) DAY AS date_start,
date_posts + INTERVAL (6 - WEEKDAY(date_posts)) DAY AS date_start,
COUNT(*) totalPosts,
COUNT(CASE WHEN Close_count = 1 THEN 1 END) closeCount,
COUNT(CASE WHEN Open_count = 1 THEN 1 END) openCount
FROM your_table
WHERE date_posts >= (CURDATE() - INTERVAL 5 WEEK) - INTERVAL WEEKDAY(CURDATE() - INTERVAL 5 WEEK) DAY
AND date_posts <= CURDATE() + INTERVAL (6 - WEEKDAY(CURDATE())) DAY 
GROUP BY YEARWEEK(date_posts,1);

关于php - 按日期获取打开和关闭的帖子计数(间隔 1 周)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38047234/

相关文章:

mysql - SQL 如果没有的话

php - 一些 php 脚本(需要逻辑帮助)

php - Textarea 接受换行但在 span 标签中它不会正确显示

php - 准备好的语句返回 0 而不是 1,为什么?

php - 包括其他第三方库时如何进行错误处理

php - PostgreSQL 和 PHP 表单

PHP round time() 向上( future )到下一个 5 分钟的倍数

mysql - 数据库模型 : what are hubs good for?

Python 序列 id 到 mysql 与文本

php - CodeIgniter 中的多个表更新