- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,我的代码需要一点帮助,它几乎正确,但只有一点小问题。
我的结果有 3 列:
entries_per_week
每周获取新条目可能是一个星期 5 个,下一个星期 3 个,下一个星期 8 个,依此类推。total_entries
跟踪每周的总条目数它不断添加“entries_per_week”列。6WK_total
,它是前 6 周的总和。所以基本上将 previous_total_entries
的 6 个加起来。我几乎让它工作,但在新的一年开始时,6WK_total
从那一年开始新的,而不是将前一年的条目相加。
这是我的代码:
SELECT a.*
, sum(b.total_entries) 6WK_total
FROM
( SELECT x.*
, SUM(y.entries_per_week) total_entries
FROM
( SELECT YEARWEEK(date_created) week_created
, COUNT(*) entries_per_week
FROM entries
GROUP
BY week_created
) x
JOIN
( SELECT YEARWEEK(date_created) week_created
, COUNT(*) entries_per_week
FROM entries
GROUP
BY week_created
) y
ON y.week_created <= x.week_created
GROUP
BY x.week_created
) a
JOIN
( SELECT x.*
, SUM(y.entries_per_week) total_entries
FROM
( SELECT YEARWEEK(date_created) week_created
, COUNT(*) entries_per_week
FROM entries
GROUP
BY week_created
) x
JOIN
( SELECT YEARWEEK(date_created) week_created
, COUNT(*) entries_per_week
FROM entries
GROUP
BY week_created
) y
ON y.week_created <= x.week_created
GROUP
BY x.week_created
) b
ON b.week_created BETWEEN a.week_created - (6 - 1) AND a.week_created
GROUP
BY week_created;
发生了什么,这里有一些结果,请注意注视 (**) 的结果,我想要的结果在另一个表的下方。它应该像下面的期望结果表一样是 1056 而不是 248
+--------------+-------+-----------------------+-----------+
| week_created | total | total_entries | 6WK_total |
+--------------+-------+-----------------------+-----------+
| 201149 | 49| 131 | 243 |
| 201150 | 37| 168 | 411 |
| 201151 | 37| 205 | 614 |
| 201152 | 18| 223 | 837 |
**| 201201 | 25| 248 | 248 |**
| 201202 | 33| 281 | 529 |
| 201203 | 66| 347 | 876 |
| 201204 | 70| 417 | 1293|
| 201205 | 61| 478 | 1771|
| 201206 | 88| 566 | 2337|
| 201207 | 72| 638 | 2727|
| 201208 | 72| 710 | 3156|
| 201209 | 67| 777 | 4030|
+--------------+-------+-----------------------+-----------+
想要的结果,请注意 week_create '201206' 6 周总数将是 total_entries 中之前的 6 个结果,因此它将是 566 + 478 + 417 + 347 + 281 + 248 = 2337。
+--------------+-------+-----------------------+-----------+
| week_created | total | total_entries | 6WK_total |
+--------------+-------+-----------------------+-----------+
| 201149 | 49| 131 | 243 |
| 201150 | 37| 168 | 411 |
| 201151 | 37| 205 | 614 |
| 201152 | 18| 223 | 837 |
| 201201 | 25| 248 | 1056|
| 201202 | 33| 281 | 1256|
| 201203 | 66| 347 | 1472|
| 201204 | 70| 417 | 1127|
| 201205 | 61| 478 | 1989|
| 201206 | 88| 566 | 2337|
| 201207 | 72| 638 | 2727|
| 201208 | 72| 710 | 3156|
| 201209 | 67| 777 | 4030|
+--------------+-------+-----------------------+-----------+
谢谢
最佳答案
我不确定我是否遵循了您写的所有内容,但如果是,那么您的问题似乎出在您用来提取星期的 YEARWEEK 函数中。
这是您上面的示例中发生的情况。当 YEARWEEK 函数应用于 2012 年的第一周时,它解析为 '201201',但是当 YEARWEEK 函数应用于 2011 年的最后一周时,它解析为 '201153'。由于一年没有 100 周,查询末尾的 between 子句在年初会失败,因为上个月是 201153 而不是 201199。
如果您将添加周的字段保留为日期格式并且仅在外部查询中应用 YEARWEEK 函数,则可以使用 DATE_SUB() 函数为您进行周减法。这可能类似于 BETWEEN DATE_SUB(week_created, INTERVAL 5 WEEK) AND week_created
。
关于mysql - 新年伊始成绩不断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10946726/
我正在尝试在 JavaScript 中创建一个正则表达式搜索,它会接受以下等级中的一个:A、B+、B、C+、C、D、F、AF 或 WF。 我有以下正则表达式:^A-?|[BCD][+-]?|[AW]?
已关闭。此问题旨在寻求有关书籍、工具、软件库等的建议。它不符合 Stack Overflow guidelines 。它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题
我正在制作一个学生数据库,其中包含类(class) ID、类(class)名称、每门类(class)的学分、通过/失败声明和成绩。我的目标是让按钮显示总和(成绩)/总和(学分) 这是我编写的代码,它给
我正在努力弄清楚如何实现这个计数。模型是用户、测试、等级 用户 has_many 测试,测试 has_many 成绩。 每个等级都有一个计算分数(strong_pass、pass、fail、stron
我是一名优秀的程序员,十分优秀!