我想选择首次购买者以及首次购买的类别的买方。
这里是示例数据:
ID Category Buy_date
1 Car 2019-01-01
1 Truck 2019-01-02
1 House 2019-01-03
1 House 2019-01-04
2 Car 2019-01-01
2 Car 2019-01-02
2 Truck 2019-01-03
我的预期结果:
ID Category Buy_date
1 Car 2019-01-01
2 Car 2019-01-01
我的代码:
select ID, category, min(buy_date) over (partition by id) from #a group by 1,2
这里是不正确的结果:
ID Category Buy_date
1 Car 2019-01-01
1 Truck 2019-01-01
1 House 2019-01-01
2 Car 2019-01-01
2 Truck 2019-01-01
尝试一下:
select id, category, buy_date from test as outer_tab where buy_date = (select min(buy_date) from test where id = outer_tab.id);
如果要每个id
行,则使用distinct on
:
select distinct on (id) a.*
from a
order by id, buy_date asc;