sql >> データベース >  >> RDS >> Oracle

集合演算子を使用するようにSQLクエリを変換する

    これは通常の方法ではありませんが、演習として、すべての顧客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;
    

    ...しかし、タイプや日付による制限など、あなたが示したものについての質問にはもっと多くのものがあるかもしれません。




    1. mysqlの絵文字は疑問符に変わります

    2. XAMPP for WindowsでMySQLコマンドラインにアクセスするにはどうすればよいですか?

    3. MySql:行を挿入してコンテンツを取得します

    4. 数値のある列のタイプをvarcharからintに変更します