gpt4 book ai didi

sql - 获取具有相同 id 值的最长字符串的字段

转载 作者:行者123 更新时间:2023-12-01 07:42:07 27 4
gpt4 key购买 nike

我必须为相同的 id 字段获取具有最长字符串值的行。

create table test(
id number,
test_data varchar2(20)
);

insert all
into test values (1,'aaa')
into test values (1,'a')
into test values (1,'abxw')
into test values (2,'aaa')
into test values (2,'tris')
select * from dual;

我想要的输出是

1 abxw --最长的字符串

2 次

我怎样才能获得所需的输出?我不明白。

伙计们如何使用光标。我们可以为此目的使用游标吗?有谁有想法吗?是否可以??

谢谢你。

最佳答案

我喜欢对这些类型的查询使用分区:

select id,test_data from (
select
id, test_data,
row_number() over( partition by id order by length(test_data) desc) as rnum
from
test
) where rnum=1

http://www.sqlfiddle.com/#!4/66d4c/20

当然,这样做的好处是,如果您决定想要另一个抢七局(例如,按字母顺序),您只需要将其添加到您的 order by 子句中。顺便说一句,这不是一个坏主意,这样您的结果集就不会是不确定的。

关于sql - 获取具有相同 id 值的最长字符串的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12362085/

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