更新时间:2026-07-28 GMT+08:00
如何查询表中某列第N大的数据?
答:可以使用窗口函数来实现。请根据实际情况选择row_number()、rank()和dense_rank()三个窗口函数其中之一。
--建表插入数据。 gaussdb=# CREATE TABLE tbl_test(name varchar(20),tamo int); gaussdb=# INSERT INTO tbl_test VALUES('Bob',7000),('Jack',6500),('July',6800); gaussdb=# INSERT INTO tbl_test VALUES('Luna',7200),('Henry',7000),('John',8000); --使用如下SQL查询出交易额(tamo)排名第三的数据。 gaussdb=# SELECT * FROM (SELECT *,dense_rank() over(order by tamo desc) rank FROM tbl_test) WHERE rank = 3; name | tamo | rank -------+------+------ Bob | 7000 | 3 Henry | 7000 | 3 (2 rows) --删除。 gaussdb=# DROP TABLE tbl_test;
父主题: 其他