我有一个包含许多列和许多重复行的表
主键由C1,C2,Year,C3,C5列组成,我只想根据较高的Date,C6和C4列(按此顺序)保留每个重复行的一行
例如:让我们根据4列(我们的主键)获取最后2行,我们只需保留其中一行并执行此操作:我们首先比较哪一行具有最高的Date列(它们我们必须转到第二列(C6),它们具有相同的值= 0,最后我们比较C4列,我们采用更高的(= 1)。
对于这个例子,我们必须选择最后一行并删除另一行。
C1 C2 Year C3 C4 C5 C6 Date
------------------------------------------------------------------
100 74 2013 2697 0 1 0 11/06/2013
100 74 2013 2697 1 1 0 11/06/2013
100 74 2013 2697 0 1 1 12/06/2013
100 74 2013 2707 1 0 11/06/2013
100 74 2013 2707 2 0 11/06/2013
100 74 2013 2707 3 0 11/06/2013
100 74 2013 2708 0 1 0 11/06/2013
100 74 2013 2708 1 1 0 11/06/2013
100 74 2013 2708 1 1 1 25/06/2013
100 74 2013 2708 0 1 1 30/06/2013
100 74 2013 3211 0 1 0 28/07/2013
100 74 2013 3211 1 1 0 28/07/2013
由于
答案 0 :(得分:0)
总体思路:
SELECT
DENSE_RANK() OVER (PARTITION BY c1, c2, year, c3, c5 ORDER BY date, c6, c4)
FROM table
您可能希望将其包装在另一个SELECT中以剪切重复项。