在PostgreSQL中返回两个没有重复属性的随机行

时间:2017-06-02 18:17:25

标签: sql postgresql

假设我有一张客户地址表:

Name           |   AddressLine
-------------------------------
John Smith      | 123 Nowheresville
Jane Doe        | 456 Evergreen Terrace
John Smith      | 999 Somewhereelse
Joe Bloggs      | 1 Second Ave

我想从这个表中返回两个随机行,但我不想返回两个具有相同名称的行(我不想要的例子):

Name           |   AddressLine
-------------------------------
John Smith      | 123 Nowheresville
John Smith      | 999 Somewhereelse

我怎样才能在Postgres中做到这一点?

1 个答案:

答案 0 :(得分:3)

这是一种方法:

select distinct on (name) t.*
from t
order by name, random();