我有一个这样的表格:
FieldA FieldB FieldC
1111 ABC X
1111 DEF Y
1111 GHI X
2222 JKL Y
2222 MNO X
3333 PQR U
3333 STT U
我想为每个fielda选择一个fieldb,优先选择fieldc中的x(如果没有x,则选择另一个)。
我试过使用带有分区的秩函数,但是我发现它太不一致了,我现在遇到了一堵墙。
我的输出如下所示:
FieldA FieldB FieldC
1111 ABC X
2222 MNO X
3333 PQR U
查询:
Select
rank() over (partition by Field3 order by Field1),
Field,1 Field2, Field3
FROM table
ORDER BY Field1, Field3
我想我需要把这个查询放在一个子查询中。。。
1条答案
按热度按时间u0njafvf1#
你可以用
ROW_NUMBER
这样地:上面的查询从每个记录中选取一个记录
FieldA
分区。它优先考虑FieldC = 'X'
所有其他记录。