私は、この形式のテーブル条件付き合計T-SQL
COL1 COL2 COL3
A NULL 4
A NULL 4
A VAL1 4
A VAL2 4
A VAL3 4
B NULL 5
B VAL1 6
を持って、私は次のように出力を引き出すために必要があります。
COL1 TOTAL VALID
A 20 12
B 11 6
私の質問は、私は「VALIDを得るのですか、です'column - col2がnullでない場合のみ、col3の合計を計算する必要があります。
SUMとGROUP BY句を使用して 'TOTAL'フィールドを正しく取得できました。しかし、どのように私は '有効'列を計算するのですか?
アイデア? ありがとう!
指定した結果セットを返す方法は複数あります。このアプローチの大きな利点の1つはパフォーマンスです。これはデータを1回だけ通過する。これにより、相関サブクエリ(外部クエリによって返されるすべての行に対して実行される)のオーバーヘッドが回避されます(SLaksの回答を参照)。また、導出されたテーブルのオーバーヘッド(すなわち、インラインビューの実現)と結合操作(クリス・シャインの回答のように、btwは正しい結果を保証しません)を避けています。 – spencer7593
これは本当にエレガントで、必要です –