PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Sélectionnez une ligne aléatoire pour chaque groupe

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

Si vous n'avez besoin que de la colonne d'attribut :

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

Notez que vous devez toujours commander par id d'abord car il s'agit d'une colonne du distinct on .

Si vous souhaitez uniquement les attributs distincts :

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