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

ORA-00979:no es una expresión GROUP BY cuando ejecuto mi sql

El problema es que estás ordenando por algo que no está en tu group by cláusula.

Por ejemplo, esto funciona

SQL> with testGroup as ( select 1 as one, 2 as two from dual)
  2  select one
  3  from testGroup
  4  group by one;

       ONE
----------
         1

Si order by una columna que no está en su group by cláusula:

SQL> with testGroup as ( select 1 as one, 2 as two from dual)
  2  select one
  3  from testGroup
  4  group by two;
select one
       *
ERROR at line 2:
ORA-00979: not a GROUP BY expression

Si editas el group by cláusula para manejar la columna que necesita en el order by :

SQL> with testGroup as ( select 1 as one, 2 as two from dual)
  2  select one
  3  from testGroup
  4  group by one, two;

       ONE
----------
         1

SQL>