Если вам нужно произвольное значение («любое старое значение»), тогда min()
и max()
являются произвольными значениями:
select a, min(b) as b
from table1
group by a;
Если вы хотите неопределенное значение («значение из любой строки, которая соответствует»), тогда:
select distinct on (a) a, b
from table1
order by a;
Если вы хотите случайное значение («значение из строки случайного соответствия, выбранной изравномерное распределение "), тогда:
select distinct on (a) a, b
from table1
order by a, random();
Другими словами, определение" случайный "отличается от" произвольного "и" неопределенного ".Тем не менее, distinct on
, вероятно, то, что вы хотите вместе.