T-SQL 如何 return X item of Total items

T-SQL How to return X item of Total items

我有一个 table,其中出现了这些值:

-------------------------------
Id | Name   | Type | Date
-------------------------------
1  | Nick   | 1    | 13/11/2020
2  | Peter  | 1    | 13/11/2020
3  | Thomas | 2    | 13/11/2020
4  | Mike   | 2    | 13/11/2020
5  | Kelly  | 3    | 13/11/2020
6  | Nicky  | 3    | 13/11/2020

我希望输出:

1  | Nick   | 1 | 13/11/2020  Type 1/2
2  | Peter  | 1 | 13/11/2020  Type 2/2
3  | Thomas | 2 | 13/11/2020  Type 1/1
4  | Mike   | 3 | 13/11/2020  Type 1/3
5  | Kelly  | 3 | 13/11/2020  Type 2/3
6  | Nicky  | 3 | 13/11/2020  Type 3/3

所以我想要每种类型的“行号”以及该类型的总数。 我该怎么做?

谢谢。

您可以使用 window 函数:

select t.*,
    row_number() over(partition by type order by name) rn,
    count(*)     over(partition by type) cnt
from mytable t
order by type, name

不清楚您希望如何对具有相同 type 的行进行排序:这使用列 name