PostgreSQL の EXCEPT では、最初のテーブルにはあるが 2 番目のテーブルにはない行を返します。(つまり) Except 演算子は PostgreSQL で集合の差を実行します。Except 演算子は重複を削除します。Except ALL は重複を削除しません。
両方PostgreSQL の EXCEPT と EXCEPT ALL2 つの異なる SQL の共通行を返します。重複の処理方法が異なります。Except in PostgreSQLの場合:結果セットに対してDISTINCTを実行し、PostgreSQL で集合の差を返します。

PostgreSQL の EXCEPT ALL:差集合を実行しますが、重複は削除しません
例を挙げて説明しましょう。2つのテーブルを例に挙げましょう
表1:SummerFruits

表2:Fruits

PostgreSQL の EXCEPT:
SELECT * FROM SummerFruits
EXCEPT
SELECT * FROM Fruits
EXCEPTは差集合を取得し、重複も削除するので、結果のテーブルは次のようになります。
出力:

PostgreSQL の EXCEPT ALL:
SELECT * FROM SummerFruits
EXCEPT ALL
SELECT * FROM Fruits
EXCEPT ALLはセットの差を取得し、重複を削除しないので、結果のテーブルは次のようになります。
出力:
