Oracle
 sql >> Database >  >> RDS >> Oracle

Funzione di aggregazione Oracle per restituire un valore casuale per un gruppo?

Puoi provare qualcosa come il seguente

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'idea è di ordinare i valori all'interno del gruppo in ordine casuale e scegliere il primo. Posso pensare ad altri modi, ma nessuno così efficiente.