sql >> Base de Datos >  >> RDS >> Oracle

ORA-00979 no es un grupo por expresión

Debes poner todas las columnas del SELECT en el GROUP BY o use funciones en ellos que comprimen los resultados a un solo valor (como MIN , MAX o SUM ).

Un ejemplo simple para entender por qué sucede esto:imagina que tienes una base de datos como esta:

FOO BAR
0   A
0   B

y ejecutas SELECT * FROM table GROUP BY foo . Esto significa que la base de datos debe devolver una sola fila como resultado con la primera columna 0 para cumplir con el GROUP BY pero ahora hay dos valores de bar para elegir. ¿Qué resultado esperaría? A o B ? ¿O debería la base de datos devolver más de una fila, violando el contrato de GROUP BY? ?