2016-01-23 34 views
1

我有一张桌子帐单(名称字符(30),金额int,account_id诠释)。我试图找出表中第二高的数额。示例数据如下:找到第二高的<attribute>

Name    | Amount | Account_ID 
Phoness Company | 125  | 1 
O Company   | 127  | 2 
Phoness Company | 187  | 1 
sdfkjlef   | 45  | 3 

我的代码下面返回125.它应该返回127.不知道我在这里做错了什么。

select min(amount) from (select top 2 amount from bills) b 

回答

2

你已经几乎完成了:

select min(amount) from (select top 2 amount from bills order by amount desc) b 

在情况下,如果在你的桌子上有一个以上的行与最高值,你可以这样做:

select min(amount) from (select distinct top 2 amount from bills order by amount desc) b 
+0

我是这么认为的,谢谢,我知道了。 –