gpt4 book ai didi

sql - 如何为相同的值获取相同的行号()

转载 作者:行者123 更新时间:2023-12-04 14:46:46 25 4
gpt4 key购买 nike

如果值在 Column Week 和 Desc 中重复,则需要获得相同的“行号”。对于下表:

╔════════╦═══════╦
║ Week ║ Desc ║
╠════════╬═══════╬
║ 1 ║ FF ║
║ 1 ║ ss ║
║ 1 ║ ss ║
║ 2 ║ FF ║
║ 2 ║ ss ║
║ 4 ║ FF ║
║ 4 ║ FF ║
║ 4 ║ ss ║
║ 4 ║ ss ║
╚════════╩═══════╝

预期的结果是:
╔════════╦═══════╦════════╗
║ Week ║ Desc ║ RowNum ║
╠════════╬═══════╬════════╬
║ 1 ║ FF ║ 1 ║
║ 1 ║ ss ║ 2 ║
║ 1 ║ ss ║ 2 ║
║ 2 ║ FF ║ 1 ║
║ 2 ║ ss ║ 2 ║
║ 4 ║ FF ║ 1 ║
║ 4 ║ FF ║ 1 ║
║ 4 ║ ss ║ 2 ║
║ 4 ║ ss ║ 2 ║
╚════════╩═══════╩════════╝

最佳答案

你要 DENSE_RANK 而不是 ROW_NUMBER :

SELECT Week
, [Desc]
, DENSE_RANK() OVER (PARTITION BY Week ORDER BY [Desc]) AS [Rank #]
FROM t
DENSE_RANK RANK 将相同的值分配给按列顺序排列的行。 DENSE_RANK另外分配“密集”等级数字而不是“间隙”数字。

关于sql - 如何为相同的值获取相同的行号(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55899692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com