sql >> Database >  >> RDS >> Oracle

ORA-00979 geen groep op uitdrukking

U moet alle kolommen van de SELECT in de GROUP BY of gebruik er functies op die de resultaten comprimeren tot een enkele waarde (zoals MIN , MAX of SUM ).

Een eenvoudig voorbeeld om te begrijpen waarom dit gebeurt:Stel je voor dat je een database hebt zoals deze:

FOO BAR
0   A
0   B

en je voert SELECT * FROM table GROUP BY foo . uit . Dit betekent dat de database een enkele rij als resultaat moet retourneren met de eerste kolom 0 om te voldoen aan de GROUP BY maar er zijn nu twee waarden van bar om uit te kiezen. Welk resultaat zou je verwachten - A of B ? Of moet de database meer dan één rij retourneren, in strijd met het contract van GROUP BY ?



  1. Oracle:SQL-query die rijen retourneert met alleen numerieke waarden

  2. TRUNC(getal) Functie in Oracle

  3. Wanneer moet ik een tabelvariabele gebruiken versus een tijdelijke tabel op de sql-server?

  4. Een berekende kolom toevoegen aan een bestaande tabel in SQL Server