T-Sql语法根据几个标准对字段进行RANK

时间:2015-06-16 09:25:10

标签: sql-server rank

我在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语法实现吗?

编辑:我希望根据销售额完成排名。

1 个答案:

答案 0 :(得分:2)

是的,你可以这样写:

SELECT *, RANK() OVER(PARTITION BY Agency, mht ORDER BY sales DESC)
FROM [yourTable]