-2

我努力从我的 sql 语句中只检索 5 个值。我想在单个列中检索 5 个最高的数字。问题是有些数字重复了。当第 5 个和第 6 个最高数字相同时,我的 sql 语句检索 6 个值而不是 5。如果第 5 个和第 6 个数字相同,我不需要 sql 中的第 6 个数字。有人可以帮忙吗?

这是专栏:

Number
10
9
5
5
3
3
2
1

我的结果是:

Number
10
9
5
5
3
3

我只想检索前 5 个号码,不包括第 6 个号码。

这是我的sql:

10
9
5
5
3
3

SELECT TOP 5 Number 
FROM tbl
Order by Number Desc
4

2 回答 2

1

只需按数字 desc 排序,并将其限制为 5

select Number from table
order by Number desc
limit 5;

请注意,这是 MySQL 语法,我不知道它是否是其他数据库的“标准”。您没有指定您正在使用什么数据库。

于 2013-07-31T19:13:16.953 回答
1

您可以将它们分组并显示如下:

SELECT TOP 5 Number 
FROM tbl
GROUP BY Number
Order by Number Desc

或者您可以使用DISTINCT

SELECT DISTINCT TOP 5 Number
FROM tbl
Order by Number Desc
于 2013-07-31T19:08:56.013 回答