sql >> Database >  >> RDS >> Oracle

Vraag om te valideren of er items in de partitiegroep bestaan

Dit is meer een Relational Division probleem, maar je moet elke individuele GROUP . weergeven met elk Element .

Vraag:

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
        )

UITGANG

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

Maar als u alleen GROUP wilt retourneren , u kunt dit eenvoudig hieronder gebruiken

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

UITGANG

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


  1. MySQL kapt aaneengeschakeld resultaat van een GROUP_CONCAT-functie af

  2. Hoe u een voortschrijdende som maakt, elke rij moet de som van de vorige rijen bevatten

  3. ORA-01591 - Oracle verwijdert gegevens van externe SQL-servertabel

  4. Hoe ontsnap ik op de juiste manier aan een mysql-zoekopdracht / vind ik leuk?