外部キーを介してテーブルと1対多の関係にあるテーブルがありusers
ます。つまり、各ユーザーは多くの購入を行うことができます(または、何も購入しない場合は、user_purchasesテーブルにエントリがありません)。user_purchases
user_id
user_purchases
ここで関心のある他のフィールドは1つだけです。それはpurchase_date
です。
次の列を持つデータセットを返すSequelORMステートメントを作成しようとしています。
- ユーザーID
- ユーザーの2番目の購入日(存在する場合)
したがって、2回以上購入していないユーザーは、このデータセットに表示されません。この続編のステートメントを書くための最良の方法は何ですか?
2回以上購入したすべてのユーザーが戻ってきたデータセットを探していることに注意してください
ありがとう!
明確にするために編集
これは、ユーザーとその最初の購入日を取得するために私が書いた同様のステートメントです(現在の投稿で助けを求めている2番目の購入日とは対照的です):
DB[:users].join(:user_purchases, :user_id => :id)
.select{[:user_id, min(:purchase_date)]}
.group(:user_id)