我在pgsql上有一张含有超过100万行名称的表格,但是里面也有很多重复的。我选择了3个字段:id
,name
,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
,但是它要求我在GROUP BY
中也有id和metadata,或者在聚合函数中使用它们,但我不想对它们进行筛选。
有人知道如何获取许多列,但仅对一列执行去重吗?
order by name
吗?如果使用order by col1
会产生不同的结果吗? - Elliot Chancename
是必需的。请查看手册中的distinct on
。 - Clodoaldo Neto