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
。
我有一个 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
。