【发布时间】:2017-04-12 13:31:13
【问题描述】:
我有一个这种格式的表格:
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,请选择另一个)。
我已尝试将 RANK 函数与 PARTITION BY 一起使用,但我发现它太不一致了,我现在已经碰壁了。
我的输出如下所示:
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
我猜我需要将该查询放在子查询中...
【问题讨论】:
-
如果你有 2 个
X,你应该两个都买吗?如果没有,另一个要优先考虑的值是什么? -
您可以发布您尝试过的查询吗?