SQLクエリでHAVING句を使用して、行のグループをフィルタすることができました。 GROUP BY句を使用すると、このように直接動作します。HAVING句は実際にどのように機能しますか?
しかし、のは、このクエリを見てみましょう:
select 1 where 1!=1 having count(*)=0;
(またはOracleのための 'デュアルから' でそれを追加)。
HAVINGが実際にグループフィルタリングを行う場合、WHEREには行がないため、グループがなく、結果に 'No row selected'を指定する必要があります。
しかし、PostgreSQLでは、MySQLとOracleはクエリの結果として「1」を取得します。
質問:HAVINGは実際にどのように機能しますか?テストのための
SQLフィドル:http://www.sqlfiddle.com/#!15/d5407/51
愚かな方法を参照してください... – jarlh
リターン0行であるため、0行の行があります。HAVINGが行のフィルタリングのみを行えば、なぜスタートで空の入力に対して何らかの評価を行うのですか? – potapuff