SQL-适用于Oracle v11.6的Toad.-在使用Distinct之后,尝试为特定字段数据中的每个唯一值选择的顶



希望以下信息能在这里提供更多帮助。我在Toad中为oracle运行了以下代码:

select distinct cc_orig, cc_base, txn_orig, txn_base 
from table a

它已经沿着的路线返回了信息

cc_orig      cc_base        txn_orig      txn_base
GBP          CAD             50           35
GBP          CAD             75           45
GBP          CAD             20           10
EUR          CAD             10            8
EUR          CAD             13           11
AUD          CAD             90           50
AUD          CAD             15            5
AUD          CAD             80           45

我只想为cc_orig字段中的每个唯一值回拉一行(不管是哪一行(,所以新结果看起来如下:

cc_orig      cc_base        txn_orig      txn_base
GBP          CAD             50           35
EUR          CAD             10            8
AUD          CAD             90           50

希望这是有意义的,有人可以帮助-我认为这类似于Postgres中的Distinct On,但这似乎在Toad 中不起作用

您可以使用窗口函数:

select cc_orig, cc_base, txn_orig, txn_base
from (select cc_orig, cc_base, txn_orig, txn_base,
row_number() over (partition by cc_orig order by cc_orig) as seqnum
from table a
) a
where seqnum = 1;

请注意,您不需要select distinct。无论如何,row_number()只选择一行(任意(。

最新更新