PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Selecione uma linha aleatória para cada grupo

select distinct on (id) id, attribute
from like_this
order by id, random()

Se você precisar apenas da coluna de atributo:
select distinct on (id) attribute
from like_this
order by id, random()

Observe que você ainda precisa fazer o pedido por id primeiro, pois é uma coluna do distinct on .

Se você quiser apenas os atributos distintos:
select distinct attribute
from (
    select distinct on (id) attribute
    from like_this
    order by id, random()
) s