Mam tabelę na pgsql z nazwami (mającą więcej niż 1 milion wierszy), ale mam też wiele duplikatów. Wybieram 3 pola: id
, name
, metadata
.Postgres: Wyraźny, ale tylko dla jednej kolumny
Chcę wybrać je losowo z ORDER BY RANDOM()
i LIMIT 1000
, więc robię to wiele kroków, aby zaoszczędzić trochę pamięci w moim skrypcie PHP.
Ale jak mogę to zrobić, więc daje mi listę, która nie ma duplikatów w nazwach.
Na przykład zostanie zwrócony kod [1,"Michael Fox","2003-03-03,34,M,4545"]
, ale nie będzie to [2,"Michael Fox","1989-02-23,M,5633"]
. Pole nazwy jest najważniejsze i musi być unikatowe na liście za każdym razem, gdy wybieram i musi być losowe.
Próbowałem z GROUP BY name
, bu następnie oczekuje, że mam identyfikator i metadane w GROUP BY
, a także w funkcji aggragate, ale nie chcę ich jakoś filtrowane.
Ktoś wie, jak pobrać wiele kolumn, ale robi tylko wyraźne w jednej kolumnie?
Dobry połów przy zamawianiu. Nie uwzględniłem tego, ponieważ wspomnieli, że chcą losowego uporządkowania, ale ważne jest, aby o tym wspomnieć. –
tak, kolejność jest również ważna, dziękuję. – NovumCoder
Czy wymagane jest "zamówienie według nazwy"? Czy dałoby to inny wynik z 'order by col1'? –