如何解决SQL-Toad for Oracle v11.6 -使用Distinct后尝试为特定字段数据中的每个唯一值选择第一行
希望以下信息对您有所帮助。我已经在Toad for 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,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()
只会选择一个(任意)行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。