Oracle Aggregatfunktion, um einen zufälligen Wert für eine Gruppe zurückzugeben?

Die Standard-SQL-Aggregatfunktionmax() gibt den höchsten Wert in einer Gruppe zurück;min() gibt das niedrigste zurück.

Gibt es in Oracle eine Aggregatfunktion, um einen zufälligen Wert aus einer Gruppe zurückzugeben? Oder eine Technik, um dies zu erreichen?

ZB gegeben die Tabellefoo:

group_id value
1        1
1        5
1        9
2        2
2        4
2        8

Die SQL-Abfrage

select group_id, max(value), min(value), some_aggregate_random_func(value)
from foo
group by group_id;

might produzieren:

group_id  max(value), min(value), some_aggregate_random_func(value)
1        9            1           1
2        8            2           4

mit offensichtlich, die letzte Spalte ist ein zufälliger Wertin dieser Gruppe.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage