sql >> Databáze >  >> RDS >> Oracle

ORA-00979 není skupina podle výrazu

Musíte vložit všechny sloupce SELECT v GROUP BY nebo na nich použijte funkce, které komprimují výsledky na jedinou hodnotu (např. MIN , MAX nebo SUM ).

Jednoduchý příklad, abyste pochopili, proč k tomu dochází:Představte si, že máte databázi podobnou této:

FOO BAR
0   A
0   B

a spustíte SELECT * FROM table GROUP BY foo . To znamená, že databáze musí jako výsledek vrátit jeden řádek s prvním sloupcem 0 splnit GROUP BY ale nyní existují dvě hodnoty bar z čeho vybírat. Jaký výsledek byste očekávali - A nebo B ? Nebo by měla databáze vrátit více než jeden řádek, čímž poruší smlouvu GROUP BY ?



  1. Android:Jak znovu požádat kurzor o obnovení ListView po smazání řádku databáze?

  2. Skalární funkce ODBC pro datum a čas na serveru SQL (příklady T-SQL)

  3. Co znamená SELECT ... FOR XML PATH(' '),1,1)?

  4. Vložení řádku, pouze pokud tam ještě není