我有一个有 4 列的表:
ID
, USER_ID
, SOURCE
,CREATED_DATE
该表中有以下数据:
ID USER_ID SOURCE CREATED_DATE
1 25 PURCHASE 2012-01-01 12:30:00
2 26 PLEDGE 2012-01-01 12:40:00
3 25 PLEDGE 2012-01-01 12:50:00
4 25 PURCHASE 2012-01-14 12:00:00
现在如您所见,我有 4 行数据和两个唯一用户。用户 (25) 进行了 3 笔交易(两笔购买和一笔质押),用户 (26) 进行了一笔交易 - (一笔质押)
这是我想要实现的目标:
我需要从此表中选择所有事务,但我想为每个请求类型(源)选择一个唯一用户,并且该行需要是最早的事务。
我的预期结果数据将是:
ID USER_ID SOURCE CREATED_DATE
1 25 PURCHASE 2012-01-01 12:30:00
2 26 PLEDGE 2012-01-01 12:40:00
3 25 PLEDGE 2012-01-01 12:00:00
用户 (25) 进行了两次购买(一次在 2012 年 1 月 1 日,一次在 2012 年 1 月 14 日)——第一次是被退回的。
这是我到目前为止提出的SQL:
SELECT
Supporter.user_id,
MIN(Supporter.created) as created,
Supporter.*,
Supporter.source
FROM
supporters AS Supporter
GROUP BY Supporter.source
ORDER BY Supporter.created ASC
现在,这让我非常接近,除了它只选择一个用户 ID(一个有两个项目 - 承诺和购买)。如果我能弄清楚如何选择两个用户的数据,那将是我需要做的!谁能看到我在这里可能做错了什么,或者错过了什么?