【发布时间】:2019-02-03 12:09:10
【问题描述】:
我想在 SQL“PriorityCountInLast7Days”中生成一个列,用于计算优先级与该情况相同的情况的数量。如何在 SQL 中执行此操作?
对于每个 Emp1,计算priorityinthelast7days = priorityatcurrentdate 的数量以生成PriorityCountinLast7days。大小写只是每一行的唯一标识符。
+------------+------+----------+--------------------------+
| Date | Emp1 | Priority | PriorityCountinLast7days |
+------------+------+----------+--------------------------+
| 2018-06-01 | A | 0 | 0 |
| 2018-06-03 | A | 0 | 1 |
| 2018-06-03 | A | 0 | 2 |
| 2018-06-03 | A | 1 | 1 |
| 2018-06-03 | A | 2 | 1 |
| 2018-06-04 | A | 0 | 3 |
| 2018-06-01 | B | 0 | 1 |
| 2018-06-02 | B | 0 | 2 |
| 2018-06-03 | B | 0 | 3 |
+------------+------+----------+--------------------------+
【问题讨论】:
-
从现在开始的最后 7 天还是从当前行中的
date?case是独一无二的吗?并且还应该计算当前行的情况吗?'A4'和'A5'的行建议是,'A1'``,'A2'` 和A3'的行不建议。 -
@a_horse_with_no_name 已编辑!
-
@stickybbit 是的,每行的大小写应该是唯一的。
-
好吧,您刚刚编辑了问题并删除了 [Case] 字段,您说该字段唯一标识了该行(如主键)。现在我的回答似乎无关紧要。不知道为什么要删除它,因为现在数据结构甚至不是第一范式。
标签: sql sql-server count conditional-statements