sql >> Databáze >  >> RDS >> Oracle

Dotaz pro ověření, zda položky existují ve skupině oddílů

Toto je spíše Relational Division problém, ale musíte zobrazit každou jednotlivou GROUP s každým Element .

Dotaz:

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
        )

VÝSTUP

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

Ale pokud chcete vrátit pouze GROUP , můžete to jednoduše použít níže

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

VÝSTUP

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


  1. MS-Access Class Module a VBA

  2. MySQL `BEFORE INSERT TRIGGER` jak mohu přeskočit vkládání dat za podmínky?

  3. mysql vyhledá segment názvu tabulky

  4. Jak získat záznam s maximální hodnotou v MySQL