在PostgreSQL中获取一组唯一字段的最佳方法是什么?

时间:2015-10-10 17:16:11

标签: sql postgresql

例如,假设您有一个名为 person 的表格,其结构如下:

    Table "public.person"
      Column       |       Type        |                      Modifiers                      
-------------------+-------------------+-----------------------------------------------------
 id                | integer           | not null default nextval('person_id_seq'::regclass)
 first_name        | character varying | not null
 last_name         | character varying | not null
 birthday          | date              | 
Indexes:
    "person_pkey" PRIMARY KEY, btree (id)

您如何找到独特的名字集?

'独特集'我的意思是:

   Aaron
   Abbie
   Adam
   ...

而不是:

   Aaron
   Aaron
   Abbie
   Abbie
   Abbie
   Adam
   ...

我的问题与this one非常相似,但我觉得这个问题对某个人的用例非常具体,也没有得到很多答案 - 所以我想在这里重新讨论这个话题。

我的直觉是使用此查询:

SELECT DISTINCT ON (first_name) first_name FROM person ORDER BY first_name;

1 个答案:

答案 0 :(得分:2)

如果要消除重复的行,请执行以下操作:

SELECT DISTINCT FIRST_NAME FROM PERSON;

或者如果你想聚合一些字段:

SELECT FIRST_NAME, COUNT(1) CNT FROM PERSON GROUP BY FIRST_NAME;