我希望运行一个查询来收集过去 14 天的结果数量,这很容易实现,如下所示:
SELECT COUNT(id)
FROM table_name
Run Code Online (Sandbox Code Playgroud)
然后我想做的是将结果分组,以便我可以显示本周和前一周。使用WEEK()MySQL 中的选项可以让我获得前两周的数据,但按周分组可以返回 2 或 3 个结果,具体取决于结果属于一年中的哪一周:
例如:
SELECT WEEK(date_logged) as week, COUNT(id) as rows
FROM table_name
WHERE date_logged > DATE_SUB(NOW(), INTERVAL 14 DAY)
GROUP BY WEEK(date_logged)
Run Code Online (Sandbox Code Playgroud)
产生:
week 38: 10 result
week 39: 20 results
week 40: 3 results
Run Code Online (Sandbox Code Playgroud)
而不是:
this week: 13 results (10 from week 38 and half of week 39)
previous week: 20 results (half of week 39 and all of week 40)
Run Code Online (Sandbox Code Playgroud)
希望该数据集说明了我所追求的。
如果可能的话,我想避免在 aselect上做一个select,希望我不会太远。
ype*_*eᵀᴹ 12
SELECT 'last week' AS week, COUNT(*) AS rows
FROM table_name
WHERE date_logged >= CURDATE() - INTERVAL 6 DAY
AND date_logged < CURDATE() + INTERVAL 1 DAY
UNION ALL
SELECT 'previous week' AS week, COUNT(*) AS rows
FROM table_name
WHERE date_logged >= CURDATE() - INTERVAL 13 DAY
AND date_logged < CURDATE() - INTERVAL 6 DAY ;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24500 次 |
| 最近记录: |