【发布时间】:2015-06-16 09:25:10
【问题描述】:
我在 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 将“排名输出”与我的初始查询连接起来。
简单来说,代理商的排名需要在 MTH、Market 和 Property 分组之后进行。
这可以使用 T-SQL 语法来实现吗?
编辑:我希望根据销售额进行排名。
【问题讨论】:
-
10 是多少?什么是2?什么是 9?为什么是10?为什么2?为什么是 9?
-
@GiorgiNakeuri 10 表示在房地产“RAV”和“英国”市场中,根据他的销售额,史密斯在 2015 年 2 月排名第 10。其余的逻辑相同。
-
@TheGameiswar 感谢您的链接,但我仍然对排名和行号有点困惑。等级,我的意思是“给定一个从最大到最小的等级数”。在我的示例中,如果我在 2015 年 2 月有 20 条关于物业 X 的英国市场记录,它将排名 1 分配给取得最高销售额的代理机构,依此类推,而代理取得最低销售额则给定排名 20。
标签: sql-server rank