Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle-Aggregatfunktion, um einen Zufallswert für eine Gruppe zurückzugeben?

Sie können etwas wie das Folgende versuchen

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
/

Die Idee ist, die Werte innerhalb der Gruppe in zufälliger Reihenfolge zu sortieren und den ersten auszuwählen. Mir fallen andere Möglichkeiten ein, aber keine ist so effizient.