すべての非集計列でグループ化せずに HAVING 句を使用するSELECT
多くの場合、ID 列と月列を他の多くのメトリックと共に含むテーブルに直面します。他の列に基づいて特定の行を除外します。12 か月分のデータをすべて含む ID のみを取得したいので、次のようにします。
proc sql;
create table t as
SELECT *
FROM T1
GROUP BY id
HAVING COUNT(id) = 12
quit;
私にはうまくいくようですが、この方法には危険があるのではないかと思っていました。id と id の数だけで集約されたサブクエリを結合できることはわかっていますが、この方法は非 SQL ユーザーに説明する方がはるかに簡単です。
一般に、ステートメントに集約関数を使用せHAVING
ずに列を 2 つだけ使用して句を使用できますか?GROUP BY
SELECT