我有下表:
AnswerBaseID EpisodeSetID EpisodeNumber ProposedTreatmentID_OD
107 95 1 2
108 95 2 3
109 96 1 2
110 96 2 3
111 96 3 2
120 103 1 2
121 103 2 2
EpisodeSets有不同数量的剧集:EpisodeSet 95有2集剧集,EpisodeSet 96有3集剧集,EpisodeSet 103有两集剧集。所有剧集都以一个可能在随后的剧集中改变的建议处理2开始。
例如,在EpisodeSet 96中,剧集在第二集剧集号中设置从2变为3。我希望在第一次更改之后排除所有记录,直到出现不同的数字。
所以在EpisodeSet 96中,我想排除第2集和第3集,即使第3集再次是建议的治疗2。最后,我希望我的结果如下:
AnswerBaseID EpisodeSetID EpisodeNumber ProposedTreatmentID_OD
107 95 1 2
109 96 1 2
120 103 1 2
121 103 2 2
我该如何撰写这样的查询?
答案 0 :(得分:0)
听起来您希望根据EpisodeSetId
保留每个EpisodeNumber
的第一条记录。
以下是一种适用于所有数据库的方法:
select t.*
from table t
where not exists (select 1
from table t2
where t2.EpisodeSetId = t.EpisodeSetId and
t2.EpisodeNumber < t.EpisodeNumber
);