は、私は、次の表を持って言ってやるがいい。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
しかし、I 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
はWHERE
句を使用するよりも、他のランキングNULL
Sを、無視する方法はありますか?行を省略できない他の列があります。
BQまたはTeradataのためにありますか?彼らは非常に異なっています。タグ正しく! –
BQが標準SQLをサポートするようになりました。 – cshin9
"標準SQL" <> "Teradata SQL" –