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 行のデータと 2 人の一意のユーザーがあります。ユーザー (25) は 3 回の取引 (2 回の購入と 1 回の誓約) を行い、ユーザー (26) は 1 回の取引を行いました – (1 回の誓約)
これが私が達成しようとしていることです:
このテーブルからすべてのトランザクションを選択する必要がありますが、REQUEST TYPE (ソース) ごとに UNIQUE ユーザーを選択する必要があり、その行は EARLIEST TRANSACTION である必要があります。
私の予想される結果データは次のようになります。
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) は 2 回購入しました (1 回は 2012 年 1 月 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 の 1 つ (誓約と購入の 2 つの項目を持つもの) のみが選択されることを除いて、これは非常によくわかります。両方のユーザーのデータを選択する方法を理解できれば、それが私がしなければならないことです! ここで私が間違っている、または行方不明になっている可能性があることを誰かが見ることができますか?