我在SQL Server 2014中有一个SQL查询,它输出以下内容(显示摘录,实际输出大约是45,000条记录):
ResaID Agency Sales MTH Market Property
235 Smith 500 February 2015 UK RAV
451 John 1600 February 2015 France PLN
258 Alan 800 January 2015 UK BLS
我需要一个SQL查询,它将根据以下标准排列代理商列:MTH,市场和财产,并给我以下输出(虚构排名如下所示):
ResaId Rank
235 10
451 2
258 9
然后我将使用基于ResaID的JOIN加入" Rank输出"我的初步查询。
简单来说,代理商的排名需要在对MTH,市场和房产进行分组后进行。
可以使用T-SQL语法实现吗?
编辑:我希望根据销售额完成排名。
答案 0 :(得分:2)
是的,你可以这样写:
SELECT *, RANK() OVER(PARTITION BY Agency, mht ORDER BY sales DESC)
FROM [yourTable]