Oracle
 sql >> Baza danych >  >> RDS >> Oracle

ORA-00979 nie jest grupą według wyrażenia

Musisz umieścić wszystkie kolumny SELECT w GROUP BY lub użyj na nich funkcji, które kompresują wyniki do pojedynczej wartości (np. MIN , MAX lub SUM ).

Prosty przykład, aby zrozumieć, dlaczego tak się dzieje:Wyobraź sobie, że masz taką bazę danych:

FOO BAR
0   A
0   B

i uruchamiasz SELECT * FROM table GROUP BY foo . Oznacza to, że baza danych musi zwrócić pojedynczy wiersz jako wynik z pierwszą kolumną 0 aby wypełnić GROUP BY ale są teraz dwie wartości bar do wyboru. Jakiego wyniku można się spodziewać — A lub B ? A może baza danych powinna zwrócić więcej niż jeden wiersz, naruszając umowę GROUP BY? ?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle (stare?) Joins — narzędzie/skrypt do konwersji?

  2. RDLC LocalReport Export do Excela bardzo wolno

  3. Czy konieczne jest wyrzucenie DbCommand po użyciu?

  4. SQL ROWNUM jak zwrócić wiersze między określonym zakresem

  5. Limit czasu połączenia dla DriverManager getConnection