我有一张个人眼科检查和眼镜购买日期表。我只想保留人们在进行眼科检查后购买眼镜的情况。在下面的示例中,我想为人员 2、人员 3 保留人员 1、事件 2 和 3,但不为人员 4 保留。我如何在 SQL Server 中执行此操作?
| Person | Event | Order |
| 1 | Exam | 1 |
| 1 | Eyewear| 2 |
| 2 | Eyewear| 1 |
| 2 | Exam | 2 |
| 2 | Eyewear| 3 |
| 3 | Exam | 1 |
| 3 | Eyewear| 2 |
| 4 | Eyewear| 1 |
| 4 | Exam | 2 |
最终结果如下
| Person | Event | Order |
| 1 | Exam | 1 |
| 1 | Eyewear| 2 |
| 2 | Exam | 2 |
| 2 | Eyewear| 3 |
| 3 | Exam | 1 |
| 3 | Eyewear| 2 |
最佳答案
自加入应该可以...
select
t.Person
,t.Event
,t.[Order]
from
yourTable t
inner join
yourTable t2 on t2.Person = t.Person
and t2.[Order] = (t.[Order] +1)
where
t2.Event = 'Eyewear'
and t.Event = 'Exam'
关于sql - 仅包括事件顺序有效的分组观察,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47270331/