我想选择记录并确定每个相似数据的排名号。
我的数据如下。
MEMBER ID | LOAN AMOUNT
1 | 2,000.00
2 | 1,000.00
3 | 4,000.00
4 | 1,000.00
我想要的结果如下所示。
RANK|MEMBER ID|LOAN AMOUNT
1 |3 |4,000.00
2 |1 |2,000.00
3 |2 |1,000.00
3 |4 |1,000.00
RANK 是一个新列。我正在使用 MS SQL Server 2008 并创建了一个视图表,如下所示,但它没有得到想要的结果。
select rank=count(*), s1.MemberID, s1.Loan_Amount
from (select MemberID, Loan_Amount from vwPrintTop20Borrowers) s1
group by s1.MemberID, s1.LOAN_AMOUNT
order by rank, s1.Loan_amount DESC
请帮忙。谢谢! :)
只需使用RANK()
:
SELECT RANK() OVER(ORDER BY t.loan_amount DESC) as [rank],
t.memeber_id,t.loan_amount
FROM YourTable t
尽管这会导致 E.G. 之间的差距。
RANK | AMOUNT
1 10
2 9
3 8
3 8
5 7
为了避免这种情况,对于 SQL-Server 2008+ ,请使用DENSE_RANK()
DENSE_RANK() OVER(ORDER BY t.loan_amount DESC) as [rank]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)