1
select count(*) from tableA having product="abc";
select count(*) from tableA where product="abc";
両者は同じ理由で上記の文と異なるのはなぜですか? 可能ですか?SAS SQL where and having
select count(*) from tableA having product="abc";
select count(*) from tableA where product="abc";
両者は同じ理由で上記の文と異なるのはなぜですか? 可能ですか?SAS SQL where and having
WHERE
は、計算に入るレコードをフィルタリングします。 HAVING
は、返される結果行をフィルタリングします。
最初のクエリを実行すると、HAVING句で要約統計変数が参照されていないため、SASは元のデータで結果を再作成することを警告します。元のレコードがHAVING節を満たしていない場合、結果セットには何の観測も得られないことに注意してください。しかし、ANYレコードが照会を満たしている場合、HAVING節を満たす各観測について別個の観測が行われますが、カウントされていないものはすべての観測値です。
このクエリを試してみてください。
proc sql ;
select 'HAVING',count(*) from sashelp.class having name like 'A%'
union all
select 'WHERE',count(*) from sashelp.class where name like 'A%'
;
quit;
その後Z%
へA%
を変更し、再度実行します。
通常の条件の場合、および集計関数条件の場合は、どこで使用しますか。 – jarlh