gpt4 book ai didi

sql - 如何从 Oracle SQL 的多个列中选择唯一值?

转载 作者:行者123 更新时间:2023-12-01 03:35:55 24 4
gpt4 key购买 nike

基本上,我有下表:

ID | Amount
AA | 10
AA | 20
BB | 30
BB | 40
CC | 10
CC | 50
DD | 20
DD | 60
EE | 30
EE | 70

我需要在每列中获取唯一条目,如下例所示:
ID | Amount
AA | 10
BB | 30
CC | 50
DD | 60
EE | 70

到目前为止,以下代码段几乎给出了我想要的,但是 first_value()可能会返回一些值,这在当前列中不是唯一的:
first_value(Amount) over (partition by ID)
Distinct也没有帮助,因为它返回唯一的行,而不是它的值

编辑:
选择顺序无关紧要

最佳答案

这对我有用,即使是 Dimitri 提到的有问题的组合。我不知道这对于更大的体积有多快

with ids as (
select id, row_number() over (order by id) as rn
from data
group by id
), amounts as (
select amount, row_number() over (order by amount) as rn
from data
group by amount
)
select i.id, a.amount
from ids i
join amounts a on i.rn = a.rn;

SQLFiddle 目前对我不起作用,这是我的测试脚本:
create table data (id varchar(10), amount integer);

insert into data values ('AA',10);
insert into data values ('AA',20);
insert into data values ('BB',30);
insert into data values ('BB',40);
insert into data values ('CC',10);
insert into data values ('CC',50);
insert into data values ('DD',20);
insert into data values ('DD',60);
insert into data values ('EE',30);
insert into data values ('EE',70);

输出:
id | amount
---+-------
AA | 10
BB | 20
CC | 30
DD | 40
EE | 50

关于sql - 如何从 Oracle SQL 的多个列中选择唯一值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34874749/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com