これは通常の方法ではありませんが、演習として、すべての顧客IDのセットを取得し、2つ以上のトランザクションを持つすべてのIDのセットをマイナスすることができます。これは、顧客テーブルを1秒も見なくても取得できます。時間:
SELECT C.ID
FROM CUSTOMER C
MINUS
SELECT P.ID
FROM PERFORMS P
INNER JOIN TRANSACTION T
ON T.CODE = P.CODE
GROUP BY P.ID
HAVING COUNT(T.CODE) > 1;
実際にTRANSACTIONに参加する必要はありません。PERFORMSのコード値を直接カウントするだけです:
SELECT C.ID
FROM CUSTOMER C
MINUS
SELECT P.ID
FROM PERFORMS P
GROUP BY P.ID
HAVING COUNT(P.CODE) > 1;
...しかし、タイプや日付による制限など、あなたが示したものについての質問にはもっと多くのものがあるかもしれません。