sql >> Databasteknik >  >> RDS >> Oracle

Konvertera SQL-fråga för att använda Set Operators

Det är inte hur du normalt skulle göra detta, men som en övning kan du få uppsättningen av alla kund-ID och MINUS uppsättningen av alla ID:n med mer än två transaktioner, som du kan få utan att titta på kundtabellen en 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 egentligen inte gå med i TRANSACTION, du kan bara räkna kodvärdena i PERFORMS direkt:

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

... men det kanske ligger mer bakom frågan vad du har visat, som att begränsa efter typ eller datum.




  1. Hur man gör en DELETE Pass-Through Query i SQL Server

  2. Konstig karaktär i färsk WAMP-installation?

  3. Oracle OCI, bindningsvariabler och frågor som ID IN (1, 2, 3)

  4. Hur konfigurerar du anslutningssträngen för ODP.NET-anslutningssträng med FailOver?