sql - 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, 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()
无论如何只能选择一个(任意)行。
推荐阅读
- javascript - 为什么具有相同名称值的键的工厂函数仅在给定参数时才更改值
- javascript - 尝试使用 fetch 从浏览器通过 signedUrl 上传图像 S3,但图像在 s3 中为空白
- firebase - 如何将歌曲链接到新页面
- django - 具有范围查找的 Django 多重过滤器
- assembly - 如何使用 cmake 生成地图文件
- java - 如何使用 Maven 安装 unirest?
- php - 如何将消息从 PHP 页面返回到 AJAX 调用
- java - 如何获取相同视图组件的列表
- python - 错误计算区域“IndexError:维度 1 的张量的索引过多”
- dockerfile - docker hyperledger indy 上的 node-gyp 重建错误