sql >> Databasteknik >  >> RDS >> Oracle

ORA-00979 inte en grupp efter uttryck

Du måste lägga in alla kolumner i SELECT i GROUP BY eller använd funktioner på dem som komprimerar resultaten till ett enda värde (som MIN , MAX eller SUM ).

Ett enkelt exempel för att förstå varför detta händer:Föreställ dig att du har en databas som denna:

FOO BAR
0   A
0   B

och du kör SELECT * FROM table GROUP BY foo . Detta innebär att databasen måste returnera en enda rad som resultat med den första kolumnen 0 för att uppfylla GROUP BY men det finns nu två värden för bar att välja mellan. Vilket resultat skulle du förvänta dig - A eller B ? Eller bör databasen returnera mer än en rad, vilket bryter mot avtalet för GROUP BY ?



  1. Jämför strängar som ignorerar accenter i SQL (ORACLE)

  2. Hur får man en ålder från ett D.O.B-fält i MySQL?

  3. Välj kolumner över olika databaser

  4. uppdatera kolumner med ett sekvensnummer mysql