如何从此表中选择最小日期和total_sales?

时间:2016-11-26 04:45:46

标签: sql postgresql greatest-n-per-group amazon-redshift

我需要从此表中选择最小日期和金额,我该怎么办?

Table:

|user_id |date       |amount         |
---------+-----------+----------------
|1       |2014-08-19 | 1000
|2       |2014-12-04 | 20000
|2       |2014-01-09 | 21000
|1       |2015-02-26 | 6000
|2       |2015-03-15 | 27000
|1       |2015-10-26 | 8000

预期结果:

|user_id |date       |amount         |
---------+-----------+----------------
|1       |2014-08-19 | 1000
|2       |2014-12-04 | 20000

1 个答案:

答案 0 :(得分:1)

在Postgres中,使用let hamsters = [murrayTheHamster, morganTheHamster, mauriceTheHamster] print(hamsters.textualDescription)

distinct on

select distinct on (user_id) t.* from t order by user_id, date asc; 为括号列表中的每个键组合返回一行。列表中的键需要是订单的第一个键。查询返回遇到的第一行。在这种情况下,具有最小distinct on(基于date asc)的那个。

如果RedShift不支持date,那么只需使用窗口函数:

distinct on