我需要找到与另一列的最大值对应的值。
我的数据如下:
| 组群|子群|子组_2|值_a|值_B|日期|
| - -|- -|- -|- -|- -|- -|
| A级|一百零一|一个|二百|一百零一|二○二二○三零一|
| A级|一百零二|一个|一百零五|九十|二○二二○三零一|
| A级|一百零三|2个|九十|二百零二|二○二二○三零一|
| A级|二一一|2个|七十五|一百零七|二○二二○三零一|
| B|二一二|一个|九十一|六十五|二○二二○三零一|
| B|二百一十三|一个|一百七十五|一百零一|二○二二○三零一|
我需要将数据格式化如下:
| 组群|子组_2|最大值a|值_B|日期|
| - -|- -|- -|- -|- -|
| A级|一个|二百|一百零一|二○二二○三零一|
| A级|2个|九十|二百零二|二○二二○三零一|
| B|一个|一百七十五|一百零一|二○二二○三零一|
我可以通过一个group by很容易地实现这个格式,但是我必须聚合value_b才能做到这一点,这并不能给予我需要的结果。
我知道我可以使用rank()而不是partition by,但它似乎没有提供我需要的格式。
这是我在下面使用的查询,但是它只提供了一个subgroup_2的最大值,而不是每个subgroup_2的最大值:
select group, subgroup_2, max_value_a, value_b, date
from
(
select a.group, a.subgroup_2, a.max_value_a, a.value_b, a.date,
rank() over(partition by a.group, subgroup_2, a.date order by a.max_value_a desc) as rnk
from table_1 a
)s
where rnk=1
1条答案
按热度按时间aydmsdu91#
您要在此处使用
ROW_NUMBER
: