- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQL HAVING句の使い方について)
SQL HAVING句の使い方について
このQ&Aのポイント
- SQLのHAVING句を使用すると、指定した条件に基づいてグループ化された結果セットをフィルタリングすることができます。
- 具体的には、WHERE句では行レベルの条件を指定しますが、HAVING句ではグループレベルの条件を指定することができます。
- 例えば、テーブルAとテーブルBを結合して結果テーブルを出力する際に、テーブルAのIDがテーブルBのIDと一致するものだけを表示することができます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
なにか普通に処理してはいけない(=HAVINGを使わなくてはならない)事情をお持ちですか? こうやればできますが、CROSS JOINはCostlyです。 SELECT b.ID, b.NAME, SUM(CASE WHEN A.ID=B.ID THEN 1 ELSE 0 END) FROM table_a a, table_b b GROUP BY b.ID, b.NAME 普通は、こんな風に書くのでは。。? SELECT b.ID, b.NAME, COUNT(DISTINCT cate) FROM table_b b LEFT OUTER JOIN table_a a ON a.ID=b.ID GROUP BY b.ID,b.NAME SELECT b.ID, b.NAME, NVL(CNT,0) FROM table_b b LEFT OUTER JOIN (SELECT ID,COUNT(*) CNT FROM table_a GROUP BY ID) a ON a.ID=b.ID