说我有如下表:如何在DENSE_RANK()中不计数NULL值?
col
NULL
1
1
2
然后我选择:
SELECT col, DENSE_RANK() OVER(ORDER BY col) as rnk from table
然后我得到:
col rnk
NULL 1
1 2
1 2
2 3
我想是这样的:
col rnk
NULL NULL
1 1
1 1
2 2
但是如果我q uery:
SELECT col, CASE WHEN col IS NOT NULL THEN DENSE_RANK() OVER(ORDER BY col) END as rnk from table
然后我得到:
col rnk
NULL NULL
1 2
1 2
2 3
有没有办法忽略NULL
的排名时,除使用WHERE
条款等?我有一些其他列的行不能省略。
BQ或Teradata的?他们是非常不同的。正确标记! –
BQ现在支持标准SQL。 – cshin9
“standard SQL”<>“Teradata SQL” –