War*_*arz 2 sql row-number teradata
我正在尝试ROW_NUMBER()使用下面的结果集确定如何将函数与 TERADATA 一起使用。这是我尝试过的:
select col1, col2, ROW_NUMBER() OVER (ORDER by col2 )
FROM
(select col1, col2
from TABLE
ORDER BY col2) A
Run Code Online (Sandbox Code Playgroud)
结果集
38 11/14/2016 1
38 11/15/2016 2
38 11/16/2016 3
38 11/17/2016 4
38 11/18/2016 5
38 11/19/2016 6
39 11/20/2016 7
39 11/21/2016 8
39 11/22/2016 9
39 11/23/2016 10
39 11/24/2016 11
39 11/25/2016 12
Run Code Online (Sandbox Code Playgroud)
预期的:
Col1 Col2 Col3
38 11/14/2016 1
38 11/15/2016 1
38 11/16/2016 1
38 11/17/2016 1
38 11/18/2016 1
38 11/19/2016 1
39 11/20/2016 2
39 11/21/2016 2
39 11/22/2016 2
39 11/23/2016 2
39 11/24/2016 2
39 11/25/2016 2
Run Code Online (Sandbox Code Playgroud)
您需要添加PARTITION BY:
SELECT col1,
col2,
ROW_NUMBER() OVER (PARTITION BY col1 ORDER by col2) AS row_index
FROM TABLE
ORDER BY col2
Run Code Online (Sandbox Code Playgroud)
好吧,看来您实际上需要:
SELECT col1,
col2,
DENSE_RANK() OVER (ORDER by col1) AS row_index
FROM TABLE
ORDER BY col2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5101 次 |
| 最近记录: |