sql >> Database teknologi >  >> RDS >> Oracle

Konverter SQL-forespørgsel til brug af sætoperatører

Det er ikke sådan du normalt ville gøre dette, men som en øvelse kan du få sættet af alle kunde-id'er og MINUS sættet af alle ID'er med mere end to transaktioner, som du kan få uden at se på kundetabellen et sekund tid:

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;

Du behøver ikke rigtig at deltage i TRANSACTION, du kan bare tælle kodeværdierne i PERFORMS direkte:

SELECT C.ID
FROM CUSTOMER C
MINUS
SELECT P.ID
FROM PERFORMS P
GROUP BY P.ID
HAVING COUNT(P.CODE) > 1;

... men måske er der mere i spørgsmålet om, hvad du har vist, som at begrænse efter type eller dato.




  1. Mysql BESTIL VED at bruge datodatarækken

  2. Skemamønstersøgning til dataklasseforening

  3. Sådan administreres skrivebeskyttede DB-forbindelser på applikationsniveau

  4. Rails ActiveRecord:Sådan bruges bindevariabler med dobbelte anførselstegn på jsonb