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

¿Función agregada de Oracle para devolver un valor aleatorio para un grupo?

Puedes intentar algo como lo siguiente

select deptno,max(sal),min(sal),max(rand_sal) 
from(
select deptno,sal,first_value(sal) 
     over(partition by deptno order by dbms_random.value) rand_sal
from emp)
group by deptno
/

La idea es clasificar los valores dentro del grupo en orden aleatorio y elegir el primero. Puedo pensar en otras formas, pero ninguna tan eficiente.