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

Agrupar por vs Partición por en Oracle

No son lo mismo.

Esto devolverá 3 filas:

select deptno, count(*) c from emp group by deptno;

DEPTNO C
------ -
10     3
20     5
30     6

Esto devolverá 14:

select deptno, count(*) over (partition by deptno) c from emp;


DEPTNO C
------ -
10     3
10     3
10     3
20     5
20     5
20     5
20     5
20     5
30     6
30     6
30     6
30     6
30     6
30     6