Sql server 将数字分配给SQL Server计算列中的组

Sql server 将数字分配给SQL Server计算列中的组,sql-server,partitioning,calculated-columns,Sql Server,Partitioning,Calculated Columns,这可能是非常容易的,但由于某种原因,我很难准确地确定如何做到这一点。我有一个与这些名字相关的名字和城市的列表。我想根据1个名字和2个城市在计算列中分配一个数字。示例代码如下: Name | City | Calculated Column John NYC 1 John NYC 1 John NYC

这可能是非常容易的,但由于某种原因,我很难准确地确定如何做到这一点。我有一个与这些名字相关的名字和城市的列表。我想根据1个名字和2个城市在计算列中分配一个数字。示例代码如下:

Name       |       City      |   Calculated Column
John               NYC                 1
John               NYC                 1
John               NYC                 1
John                LA                 2
John                LA                 2
Chris              NYC                 1
Chris               SF                 2
Christ              SF                 2 
Chris               LA                 3

我假设我需要使用over和partition函数,但无法正确计算上面的“计算列”。如蒙协助,将不胜感激。非常感谢

我认为您可以使用如下密集等级:

Select *, [Computed Column]= dense_rank() over(Partition by [Name] order by City) 
   from yourtable
创建表测试 名字是VARCHAR10, 瓦查尔市5

插入测试 价值观 “约翰”,“纽约”, “约翰”,“纽约”, “约翰”,“纽约”, “约翰”,“洛杉矶”, “约翰”,“洛杉矶”, “克里斯”,“纽约”, "克里斯","科幻",, “基督”和“SF”, “克里斯”,“洛杉矶”

按名称顺序按城市描述计算列选择名称、城市、等级超额分配 从测试

--输出--

名称城市计算列 克里斯SF 1 克里斯纽约2 克里斯·拉3 基督SF 1 约翰纽约1 约翰纽约1 约翰纽约1 约翰·拉2 约翰·拉2