sql >> Databasteknik >  >> RDS >> Oracle

Varför får fel ORA-00937

Saknas grupp av i yttre välj. Alla icke-aggregator i en select-sats måste listas i gruppen av.

SELECT aname, MAX(cruisingrange)
FROM   Aircraft 
WHERE aid IN(SELECT aid 
         FROM Certified
         WHERE eid in (SELECT eid
                      FROM Certified
                      GROUP BY eid
                      HAVING COUNT(eid) > 3) )
GROUP BY aname 
;

Observera att du har en grupp vid den inre mest utvalda; men du verkar sakna det ytterst.

Jag håller också med om du menar in eller equal kommer mer än ett EID att vara i Certified om du sannolikt behöver in kontra =




  1. SQL Server-säkerhetsöverväganden

  2. Välj uttalande för att hitta dubbletter på vissa fält

  3. Sammanfoga värden baserat på ID

  4. Postgresql - det går inte att släppa databasen på grund av vissa automatiska anslutningar till DB