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

アイテムがパーティショングループに存在するかどうかを検証するためのクエリ

    これはRelational Divisionのようなものです 問題がありますが、個々のGROUPを表示する必要があります 各Element

    クエリ:

    SELECT  a.*
    FROM    TableName a
    WHERE   EXISTS
            (
                SELECT  1
                FROM    TableName b
                WHERE   a."GROUP" = b."GROUP" AND
                        b."ELEMENT" IN ('A','B')
                GROUP   BY b."GROUP"
                HAVING  COUNT(*) = 2
            )
    

    出力

    ╔═══════╦═════════╗
    ║ GROUP ║ ELEMENT ║
    ╠═══════╬═════════╣
    ║     1 ║ A       ║
    ║     1 ║ B       ║
    ║     1 ║ C       ║
    ║     4 ║ A       ║
    ║     4 ║ B       ║
    ╚═══════╩═════════╝
    

    ただし、GROUPのみを返したい場合 、以下で簡単に使用できます

    SELECT  "GROUP"
    FROM    TableName b
    WHERE   "ELEMENT" IN ('A','B')
    GROUP   BY "GROUP"
    HAVING  COUNT(*) = 2
    

    出力

    ╔═══════╗
    ║ GROUP ║
    ╠═══════╣
    ║     1 ║
    ║     4 ║
    ╚═══════╝
    


    1. MySQLサブクエリは複数の行を返します

    2. 1つのmysql_query()クエリでのPHPの複数のMYSQLコマンド

    3. MySqlでのGolangORDERBYの問題

    4. node-postgresデータベースの作成