2017-06-07 14 views
-1

私のクエリでは、条件が一致した場合に列を文字列値としてキャストするCASE文があります。また、そのCASEステートメントの結果の重複した値の総数を知りたい。たとえば :CASE文の重複値の計算

select NULL as column_1, 
    CASE WHEN name IS NOT NULL THEN CAST(name as string) 
    ELSE '0' END as column_2, 
    (select COUNT (cast(column_2 as string)) from input_table 
    group by (cast(column_2 as string)) HAVING count(cast(column_2 as string)) > 1) as column_3 
    from input_table 

私はCASE文のために行くと同時に、状態出力をカウントすることはできますか? お願いします。

答えて

0

ここではCTEを使用します。あなたの探しているものについて100%明確ではありませんが、これを試してください。

;WITH Input_table as (

SELECT NULL AS column_1, 
     CASE 
      WHEN name IS NOT NULL 
      THEN CAST(name AS STRING) 
      ELSE '0' 
     END AS column_2 
) 

select distinct Column_1, Column_2, count(Column_2) [Cnt] from Input_table 
group by Column_1, Column_2 
having count(Column_2) > 1