Oracle
 sql >> Base de données >  >> RDS >> Oracle

Fonction d'agrégation Oracle pour renvoyer une valeur aléatoire pour un groupe ?

Vous pouvez essayer quelque chose comme ce qui suit

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
/

L'idée est de trier les valeurs au sein du groupe dans un ordre aléatoire et de choisir la première. Je peux penser à d'autres moyens, mais aucun n'est aussi efficace.