sql查询根据前一行删除行

时间:2016-11-15 03:05:23

标签: sql sql-server sql-server-2008

我想创建一个sql查询来删除与另一行之后的行的签名匹配的行(按列[uix]分组,按日期排序)。 所以对于这个数据集:

uid u k date
-------
id1 a -
id2 g -
id1 a x
id1 b -
id1 b -
id2 g -
id1 b -
id1 a -
id2 f -
id1 a -
id1 a x
id2 g - 
id1 c - 
id2 h -
id1 c -
id1 c -

我想删除(id1 b)和(id1 c)的所有行,因为它们是按日期排序时行(id1 a x)之后的下一行id1。

算法将是这样的:

这一行

删除所有行

其中[此行k列之前的行] = x

和[所有行u列] = [此行u列]

按照uid分组

按日期排序

结果数据集不包含任何行(id1 b)或(id1 c)。

uid u k date
-------
id1 a -
id2 g -
id1 a x
id2 g -
id1 a -
id2 f -
id1 a -
id1 a x
id2 g - 
id2 h -

0 个答案:

没有答案