我需要运行一个 Select 语句 (DB2 SQL),该语句不会根据某个字段提取相邻行重复项。具体来说,我想找出数据何时changes,这变得很困难,因为它可能会变回其原始值。
也就是说,我有一个大致类似于下面的表格,按字母排序,然后按日期排序:
A, 5, 2009-01-01
A, 12, 2009-02-01
A, 12, 2009-03-01
A, 12, 2009-04-01
A, 9, 2009-05-01
A, 9, 2009-06-01
A, 5, 2009-07-01
我想得到结果:
A, 5, 2009-01-01
A, 12, 2009-02-01
A, 9, 2009-05-01
A, 5, 2009-07-01
丢弃adjacent重复但保留最后一行(尽管它的编号与第一行相同)。显而易见的是:
Select Letter, Number, Min(Update_Date) from Table group by Letter, Number
不起作用——它不包括最后一行。
编辑:由于似乎有些混乱,我已将月份列澄清为日期列。它是一种人类可解析的简短形式,而不是实际的有效数据。
编辑:最后一行并不重要,因为它是最后一行,但因为它有一个“新值”,也是一个“旧值”。按 NUMBER 分组会将其包含在第一行中;它需要保持一个独立的实体。