Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Função agregada do Oracle para retornar um valor aleatório para um grupo?


Você pode tentar algo como o seguinte
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
/

A idéia é classificar os valores dentro do grupo em ordem aleatória e escolher o primeiro. Posso pensar em outras maneiras, mas nenhuma tão eficiente.