2013-07-03 3 views
-2

나는 SQL로 작성된 쿼리를 루비 (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');` 

어떻게 처리 할 수 ​​있습니까? 적어도 비슷한 예나 좋은 설명서를 찾아서 어디에서 찾을 수 있습니까? 모든 상수도를 수행 할 수 있도록 상수 "사용자"를 사용할 수 있습니까?

나는 필사적이다. 나는 해결책을 찾지 못한다. 그리고 나는 무엇을해야하는지 모른다. .. 미리 감사한다!!

답변

0

나는

그런 다음 쿼리는

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 
너무 루비에서이 쿼리를 변환 할 수 있습니다 당신이 festivalId='fest000'activity 'checkins' AND 'programs' AND 'status' AND'pictureUpload')을 가진 별개의 사용자 수를 찾을 필요가 추측
+0

THATS IT salil !! 당신의 도움을 주셔서 감사합니다! – user2542431

관련 문제