sql >> Databáze >  >> RDS >> PostgreSQL

Vyberte náhodný řádek pro každou skupinu

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

Pokud potřebujete pouze sloupec atributů:

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

Všimněte si, že stále musíte objednávat podle id za prvé, protože se jedná o sloupec distinct on .

Pokud chcete pouze odlišné atributy:

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


  1. Jak zakázat přísný režim MySQL

  2. O pglogickém výkonu

  3. Funkce nebo procedura pro klauzuli IN

  4. výpočty n-tého percentilu v postgresql