테이블에서 고유 한 웹 사이트 수, 각 웹 사이트의 레코드 수 및 고유 한 수를 추출하는 다음 SQL 쿼리가 있습니다. 각 웹 사이트를 방문한 사용자 테이블은 같이 배치SQL/Rails는 레코드 그룹에서 고유 한 값의 수를 반환합니다.
"SELECT title, COUNT(DISTINCT user_id), COUNT(title) FROM weblogs GROUP BY title"
다음 :
weblog_id | title | user_id
---------------------------
1 | BBC | 1
2 | BBC | 1
3 | BBC | 2
4 | Sky | 1
5 | Sky | 1
상기 쿼리 반환 :
title | COUNT(DISTINCT user_id) | COUNT(title)
---------------------------------------------------
BBC | 2 | 3
Sky | 1 | 2
을이 exec_query를 사용하여 레일의 SQL 스트링을 실행함으로써, 현재의 형태에서 작동하는 동안 , 나는 Rails의 질의 메소드를 사용하여 동일한 결과를 재현하려고 애썼다 (나는 레일즈 개발자가 아니지만 레일즈에서 일해야한다). Rails 메서드를 사용하여이 쿼리를 작성하는 방법에 대한 아이디어가 있습니까?
편집
나는 두 개의 별도의 쿼리를 사용하여 개별 전체 웹 사이트 히트 수와 웹 사이트 순 사용자를 추출 할 수 있습니다. 다음은 각 웹 사이트
weblogs.all.group(title).count
의 수를 제공합니다 그리고 다음은 각 웹 사이트에 대한 고유 한 사용자의 수를 제공합니다
weblogs.all.group(title).distinct.count(user_id)
이 거기에 하나 개의 쿼리로 이러한 결합하는 방법을?
매우 감사 실행할 수 있습니다. 나는 Railsy와 SQL을 조금 더 보일 것으로 예상했다. – bjpelcdev