0

我有一个带有字段utmtracking_id. 每个 s可能有很多tracking_id个 s utm。所以我需要为每个 utm 选择不同的 utm 和任何一个跟踪 id(比如说第一个)。

例如,我们得到了表:

utm   | tracking_id
-------------------
ddff  |      1
ddff  |      2
llzz  |      3
ddff  |      4
ohoh  |      5
ohoh  |      6

作为输出,我想得到:

utm   | tracking_id
-------------------
ddff  |      1
llzz  |      3
ohoh  |      5

我使用 PostgreSQL 9.1。
有没有办法用 SQL 做到这一点?

4

2 回答 2

5
select utm, min(tracking_id)
from t
group by utm
于 2013-09-25T11:28:46.580 回答
2

如果您只有一列,而不是简单的聚合是您想要的,请遵循 Clodoaldo Neto 的建议。如果您有多个列,则可以在语法上使用 dictinst

select distinct on(utm)
    utm, tracking_id, column1, column2, ...
from t
order by utm, tracking_id

sql fiddle demo

于 2013-09-25T11:37:43.303 回答