连接数据集中每个重复项的计数?
Concatenate a count for each duplicate in dataset?
我想为来自查询的数据集中每次出现的值添加一个串联计数。
示例数据集:
ID OtherValue
00A 2ndValue_1
00A 2ndValue_2
00A 2ndValue_3
00A 2ndValue_4
00B 2ndValue_1
00C 2ndValue_1
00D 2ndValue_1
00D 2ndValue_2
我希望查询生成此数据集:
ID OtherValue ConcatinatedCount
00A 2ndValue_1 00A-001
00A 2ndValue_2 00A-002
00A 2ndValue_3 00A-003
00A 2ndValue_4 00A-004
00B 2ndValue_1 00B-001
00C 2ndValue_1 00C-001
00D 2ndValue_1 00D-001
00D 2ndValue_2 00D-002
我不太确定如何计算每行的计数。
Window 函数(也称为分析函数或有序分析函数)是解决此问题的方法。
SELECT
ID,
OtherValue,
ID + '-' + FORMAT(ROW_NUMBER() OVER (PARTITION BY ID ORDER BY OtherValue), '000') as ConcatinatedCount
FROM yourtable;
ROW_NUMBER()
window-funtion 将在每个不同的 ID
的 partition/group 内生成一个行号,并且它将按 OtherValue
内的行号排序群组。一些连接和格式化,它应该会吐出你想要的东西。
我想为来自查询的数据集中每次出现的值添加一个串联计数。
示例数据集:
ID OtherValue
00A 2ndValue_1
00A 2ndValue_2
00A 2ndValue_3
00A 2ndValue_4
00B 2ndValue_1
00C 2ndValue_1
00D 2ndValue_1
00D 2ndValue_2
我希望查询生成此数据集:
ID OtherValue ConcatinatedCount
00A 2ndValue_1 00A-001
00A 2ndValue_2 00A-002
00A 2ndValue_3 00A-003
00A 2ndValue_4 00A-004
00B 2ndValue_1 00B-001
00C 2ndValue_1 00C-001
00D 2ndValue_1 00D-001
00D 2ndValue_2 00D-002
我不太确定如何计算每行的计数。
Window 函数(也称为分析函数或有序分析函数)是解决此问题的方法。
SELECT
ID,
OtherValue,
ID + '-' + FORMAT(ROW_NUMBER() OVER (PARTITION BY ID ORDER BY OtherValue), '000') as ConcatinatedCount
FROM yourtable;
ROW_NUMBER()
window-funtion 将在每个不同的 ID
的 partition/group 内生成一个行号,并且它将按 OtherValue
内的行号排序群组。一些连接和格式化,它应该会吐出你想要的东西。