Return 第 4 个最高值

Return 4th highest value

当我试图通过查询找到第四高的 t2 时

SELECT MAX(T2) 
FROM TST
WHERE T2 NOT IN
(
SELECT DISTINCT T2 
FROM TST 
ORDER BY T2
DESC LIMIT 3
);

它显示: '此版本MySQL暂不支持'LIMIT & IN/ALL/ANY/SOME subquery'

任何人都可以提出解决方案或替代查询吗?

您不需要子查询。 LIMIT 关键字可以指定起始偏移量。

SELECT DISTINCT t2
FROM TST
ORDER BY t2 DESC
LIMIT 3, 1

这意味着 return 从偏移量 3 开始的 1 行(偏移量从零开始,因此这是第 4 个最高的)。

您可以将 LIMITORDER BY 结合使用。

例如:

select t2 from t order by t2 desc limit 3, 1

配合数据集:

create table t (t2 int);

insert into t (t2) values (10), (50), (30), (20), (60), (80);

你得到结果:

t2
--
30

请参阅 DB Fiddle 中的 运行 示例。