我的表格包含字段utm
和tracking_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做到这一点?
答案 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 强>