部分截然不同的选择

时间:2013-09-25 11:25:41

标签: sql postgresql group-by

我的表格包含字段utmtracking_id。每个tracking_id可能有utm个{s}}。 所以我需要为每个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做到这一点?

2 个答案:

答案 0 :(得分:5)

select utm, min(tracking_id)
from t
group by utm

答案 1 :(得分:2)

如果您只有一列,而不是简单的聚合,那么请使用Clodoaldo Neto的建议。 如果您有多个列,则可以使用dictinst on语法:

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

<强> sql fiddle demo