Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Ich verstehe nicht, warum meine Gruppierung fehlschlägt

Sie können es in :

umwandeln
SELECT ENAME, MAX(SAL), STORES.CITY FROM EMPLOYEES 
INNER JOIN STORES 
ON EMPLOYEES.STORE_ID = STORES.STORE_ID
GROUP BY ENAME, STORES.CITY

oder

SELECT EMPLOYEES.STORE_ID, MAX(SAL), STORES.CITY FROM EMPLOYEES 
INNER JOIN STORES 
ON EMPLOYEES.STORE_ID = STORES.STORE_ID
GROUP BY EMPLOYEES.STORE_ID, STORES.CITY

Da in Ihrem Fall die SQL Select-Anweisung nicht gruppierte und nicht aggregierte Spalten in der Auswahlliste enthält, ist dies ein Regelverstoß. Und für Ihr Ziel bevorzugen Sie vielleicht das Folgende:

SELECT ENAME, MAX(SAL), STORES.STORE_ID, STORES.CITY FROM EMPLOYEES 
INNER JOIN STORES 
ON EMPLOYEES.STORE_ID = STORES.STORE_ID
GROUP BY ENAME, STORES.STORE_ID, STORES.CITY