-2

SQL で記述されたクエリを Ruby (activeRecord / Linq) に変換する必要がありますが、それを行うための正しい構文が見つかりません。助けてください。

フェスティバルでこの 4 つのアクティビティを行ったユニーク ユーザーの数を知りたいです。SQLクエリは次のとおりです。

`SELECT count(distinct user) FROM stats where festivalId='fest000'
and user in (select user from stats where activity='checkins')
and user in (select user from stats where activity='programs')
and user in (select user from stats where activity='status')
and user in  (select user from stats where activity='pictureUpload');`

どうすればそれを行うことができますか?少なくとも同様の例またはそれを理解するための優れたドキュメントはどこで見つけることができますか? 一定の「ユーザー」を使用して、すべてのクエリを実行してからそれらをまとめることができるでしょうか。

私は絶望的です、私は解決策を見つけることができず、何をすべきかわかりません...事前に感謝します!!

4

1 に答える 1

0

私はあなたが持っている明確なユーザー数を見つける必要があると思いfestivalId='fest000'ますactivity 'checkins' AND 'programs' AND 'status' AND'pictureUpload')

次に、次のクエリが機能するはずです

SELECT COUNT(*) FROM stats 
WHERE festivalId='fest000' AND activity IN ('checkins', 'programs', 'status','pictureUpload') 
GROUP BY user 
HAVING COUNT(DISTINCT activity) = 4

そして、このクエリをルビーの方法で簡単に変換することもできます

Stat.where("festivalId=? AND activity IN (?)", 'fest000', ['checkins', 'programs', 'status','pictureUpload']).group('user').having("COUNT(distinct activity) = 4").count
于 2013-07-03T11:23:58.173 に答える