0

Ruby-on-rails で作成された Web ページで、あるデータベースの統計情報を表示する必要があります。データベースに問い合わせる必要があることはわかっていますが、Ruby での記述方法がわかりません。

目標は、同じフェスティバルでこの 4 つのアクティビティを実行したユーザーの数を知ることです。

Rubyに変換したいSQLクエリは次のとおりです。

`SELECT count(distinct usermail) FROM stats where festivalId='2013' 

and usermail in (select usermail from stats where typeActivity='checkins')

and usermail in (select usermail from stats where typeActivity='programs')

and usermail in (select usermail from stats where typeActivity='status')

and usermail in  (select usermail from stats where typeActivity='pictureUpload');
`

したがって、私の問題は、この「選択」を大きなものにネストする方法がわからないことです。私はコントローラーにこのようなことを書き込もうとしましたが、成功しませんでした。

 def self.countTotalActivity(appId)

    stats= Stat.where(:festivalId => appId).where(:typeActivity => ('checkins').where(:typeActivity => 'status'))

    return stats.count
  end

私はドキュメントに潜んでいて、何日も別のことを試してきましたが、何の進歩もありません...

ありがとう!!!!!!

4

2 に答える 2

0

これを試して...

stats= Stat.select(:usermail).where(festivalId: 2013,typeActivity: ['checkins','status', 'programs', 'pictureUpload']).uniq.count
于 2013-07-02T12:16:20.140 に答える
0

フォローしてみてください

Stat.where("festivalId=? AND typeActivity IN (?)", '2013', ['checkins', 'programs', 'status','pictureUpload']).group('usermail').having("COUNT(DISTINCt typeActivity) = 4").count
于 2013-07-03T11:35:06.810 に答える