0

我必须在用 Ruby-on-rails 编写的网页上显示一些数据库的静态数据。我知道我要问数据库什么,但我不知道如何用 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 回答