pgsql に名前 (1 mio. 行以上) を持つテーブルがありますが、多くの重複もあります。id、name、 の3 つのフィールドを選択しますmetadata。
ORDER BY RANDOM()とでそれらをランダムに選択したいLIMIT 1000ので、PHPスクリプトでメモリを節約するために多くの手順を実行します。
しかし、どうすれば名前が重複していないリストだけが得られるのでしょうか。
たとえば、[1,"Michael Fox","2003-03-03,34,M,4545"]返されますが返されません[2,"Michael Fox","1989-02-23,M,5633"]。名前フィールドは最も重要で、選択を行うたびにリスト内で一意である必要があり、ランダムでなければなりません。
で試してみGROUP BY nameましたが、id とメタデータがGROUP BY同様にまたは集計関数にあることが期待されますが、それらを何らかの形でフィルタリングしたくありません。
多くの列を取得する方法を知っている人はいますが、1 つの列だけを区別しますか?