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 个最高的)。
您可以将 LIMIT
与 ORDER 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 中的 运行 示例。
当我试图通过查询找到第四高的 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 个最高的)。
您可以将 LIMIT
与 ORDER 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 中的 运行 示例。