如果满足条件,我需要ROW_NUMBER将数据分配给特定用户。
ROW_NUMBER将正常递增,直到找到重复值。找到重复值后,我需要它使用相同的ROW_NUMBER,直到找到新值。
例如......
使用时
SELECT ROW_NUMBER() OVER (ORDER BY COMPANY) AS rownum
,Company
,Contact
FROM TABLE
我们显然可以期待这个结果
rownum Company Contact
1 BOB'S BURGERS BOB
2 STEVE'S SARDINES STEVE
3 STEVE'S SARDINES JERRY
4 STEVE'S SARDINES MARY
5 LARRY's LOBSTER LARRY
6 CHRIS' COWS CHRIS
我想要的是这个。每当公司名称不更改时,重复ROW_NUMBER并在公司更改时继续增加数字
rownum Company Contact
1 BOB'S BURGERS BOB
2 STEVE'S SARDINES STEVE
2 STEVE'S SARDINES JERRY
2 STEVE'S SARDINES MARY
3 LARRY'S LOBSTER LARRY
4 CHRIS' COWS CHRIS
我正在使用此条件查看该公司是否与之前的公司名称相符。如果条件为真,则返回2
ROW_NUMBER() OVER (PARTITION BY COMPANY ORDER BY COMPANY) AS SameCompany
答案 0 :(得分:7)
您希望DENSE_RANK不是ROW_NUMBER。试试这个:
SELECT DENSE_RANK() OVER (ORDER BY COMPANY) AS rownum
,Company
,Contact
FROM TABLE