我在sql server 2012中有一个表格如下:
a b c 1 8 3
a b c 2 4 6
d e f 1 3 4
h i j 2 5 7
h i j 1 9 8
h i j 4 8 0
h i j 4 6 8
c v n 1 2 3
我希望结果基于前三列的不同值,而其余的列可以是任意单个记录,如相应的三列:
a b c 1 8 3
d e f 1 3 4
h i j 2 5 7
c v n 1 2 3
答案 0 :(得分:0)
在大多数数据库中,您可以使用ANSI标准row_number()
函数执行此操作:
select col1, col2, col3, col4, col5, col6
from (select t.*,
row_number() over (partition by col1, col2, col3 order by col1) as seqnum
from t
) t
where seqnum = 1;