我想创建一个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 -