作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个根据用户选择的日期范围执行的查询。例如:2019年12月12日至2020年1月13日。
// Retrieve count of attendance, no shows and cancellations per user selected category and sort by week number
$q = "SELECT YEARWEEK(`start_time`, 0) AS weekno,
SUM(`is_no_show` = 0 AND `is_cancelled` = 0) as attended,
SUM(`is_no_show` = 1) AS no_shows,
SUM(`is_cancelled` = 1)AS cancelled
FROM `myTable`
WHERE (`start_time` > :start_date AND `start_time` < :end_date)
AND category LIKE :cohort_type
GROUP BY weekno";
我的问题是此查询在 2019 年 12 月 23 日之后停止提取数据。它似乎停在一年的最后一周,而不是进入 2020 年的第一周。我该如何解释这一点?非常感谢任何建议或提示!
谢谢。
一般数据库结构:
+------------+-----------+-----------+
| start_time | no_shows | cancelled |
+------------+-----------+-----------+
| 2019-12-20 | 1 | 0 |
| 2019-12-21 | 0 | 0 |
| 2019-12-22 | 0 | 1 |
目标:我想每周对数据进行求和
编辑:YEARWEEK() 跳过 2020 年的第一周,直接进入第 2 周。
最佳答案
您的查询缺少关于年份的 GROUP BY
条件;截至目前,它将混合属于不同年份的几周,我认为这不是您想要的。我建议使用 YEARWEEK()
,它会考虑年份。
此外,您对日期的过滤似乎很尴尬,因为它混合了参数和字符串连接;您可以使用半开间隔(以及适当的参数绑定(bind))。
考虑:
SELECT
YEARWEEK(`start_time`) AS weekno,
SUM(`is_no_show` = 0 AND `is_cancelled` = 0) attended,
SUM(`is_no_show` = 1) no_shows,
SUM(`is_cancelled` = 1) cancelled
FROM `attendee_categories_appts_joined`
WHERE
`start_time` > :start_date
AND `start_time` < :end_date
AND category LIKE :cohort_type
GROUP BY weekno
关于php - SQL WeekOfYear() 在年底停止。备择方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59861824/
我是一名优秀的程序员,十分优秀!