Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Zapytanie do sprawdzenia, czy elementy istnieją w grupie partycji

To jest bardziej Relational Division problem, ale musisz wyświetlić każdą pojedynczą GROUP z każdym Element .

Zapytanie:

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
        )

WYJŚCIE

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

Ale jeśli chcesz tylko zwrócić GROUP , możesz po prostu użyć tego poniżej

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

WYJŚCIE

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapytania sparametryzowane w C# dla Oracle — poważny i niebezpieczny błąd!

  2. Nie widać dostawcy danych Oracle dla platformy .NET w programie Visual Studio 2012 RC

  3. Używasz sqlalchemy dburi z Oracle przy użyciu zewnętrznego magazynu haseł?

  4. Co to w ogóle jest wersja główna?

  5. Czy Oracle ma odpowiednik zmiennych tabeli SQL Server?