gpt4 book ai didi

sql - oracle - 为每两种类型获取最高值

转载 作者:搜寻专家 更新时间:2023-10-30 22:08:45 25 4
gpt4 key购买 nike

假设这是“transcations”表:

first_type      second_type     value
m t1 2
a t2 2
a t3 2
b t1 6
g t4 4
b t2 2
r t4 3
m t4 2
g t1 2
b t4 6
a t4 17

如何在显示关联的“second_type”列时为每个“first_type”选择最大值,所需的结果是:

first_type      second_type     value
m t1 2
b t1 6
g t4 4
r t4 3
m t4 2
b t4 6
a t4 17

或者只保留最高值而忽略对“first_type”列具有相同值的其他行,如下所示:

first_type      second_type     value
m t1 2
g t4 4
r t4 3
b t4 6
a t4 17

我尝试在按“first_type”分组时选择最大值,但我无法选择“second type”,因为 Oracle 不允许选择不在组子句中的内容。

最佳答案

你想要rank():

select first_type, second_type, value
from (select t.*,
rank() over (partition by first_type order by value desc) as seqnum
from t
) t
where seqnum = 1;

注意:这使用了 rank(),因为您的数据有联系并且您想要所有这些联系。

关于sql - oracle - 为每两种类型获取最高值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39880814/

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