gpt4 book ai didi

sql - 试图在列中找到第二大值(postgresql)

转载 作者:行者123 更新时间:2023-11-29 11:12:59 27 4
gpt4 key购买 nike

我正在尝试查找列中的第二大值,并且仅是第二大值。

select a.name, max(a.word) as word
from apple a
where a.word < (select max(a.word) from apple a)
group by a.name;

出于某种原因,我现在返回的是第二大值和所有较低的值,但幸运的是避免了最大值。

有办法解决这个问题吗?

最佳答案

根据 EXPLAIN ANALYZE,这是另一个概念上简单的解决方案,它在 2100 万行的表上为我运行了 0.1 毫秒。在只有一个值的情况下,它不返回任何内容。

SELECT a.name, 
(SELECT word FROM apple ap WHERE ap.name=a.name ORDER BY word ASC OFFSET 1 LIMIT 1)
FROM apple a

请注意,我的表已经有名称、单词和(名称,单词)的现有索引,这使我可以像那样使用 ORDER BY。

关于sql - 试图在列中找到第二大值(postgresql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4910930/

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