Стандартная агрегатная функция SQL max()
вернет самое высокое значение в группе; min()
вернет самое низкое.
Существует ли в Oracle агрегатная функция для возврата случайного значения из группы? Или какая-то техника для этого?
Например, с учетом таблицы foo
:
group_id value
1 1
1 5
1 9
2 2
2 4
2 8
SQL-запрос
select group_id, max(value), min(value), some_aggregate_random_func(value)
from foo
group by group_id;
может выдать:
group_id max(value), min(value), some_aggregate_random_func(value)
1 9 1 1
2 8 2 4
очевидно, что последним столбцом является любое случайное значение в этой группе .