2013-07-03 2 views
-2

Мне нужно перевести запрос, написанный в sql, в ruby ​​(activeRecord/Linq), но я не могу найти правильный синтаксис для этого, пожалуйста, помогите.Каков синтаксис для гнездования запросов на ruby?

Я хочу знать количество уникальных пользователей, которые сделали это 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');` 

как я могу это сделать? Где я могу найти хотя бы похожие примеры или хорошую документацию, чтобы понять это? можно ли использовать постоянный «пользователь», чтобы я мог выполнять все запросы, а затем складывать их или что-то в этом роде?

Я в отчаянии, я не могу найти решение, и я не знаю, что делать ... спасибо заранее!

ответ

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 
+0

THATS IT salil !! Спасибо за вашу помощь! – user2542431

Смежные вопросы