【发布时间】:2014-12-12 10:17:43
【问题描述】:
我有以下 SQL 查询,它从表中提取唯一网站的数量、每个网站的记录数以及访问每个网站的唯一用户数量。
"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 在 Rails 中执行 SQL 字符串以当前形式工作,但我一直在努力使用 Rails 的查询方法复制相同的结果(我不是 Rails 开发人员,但必须在 Rails 中工作)。关于如何使用 Rails 方法构建此查询的任何想法?
编辑
我可以使用两个单独的查询来提取单个网站总点击数和每个网站的唯一用户数。下面给出每个网站的计数
weblogs.all.group(title).count
下面给出了每个网站的唯一用户数:
weblogs.all.group(title).distinct.count(user_id)
有没有办法将这些组合成一个查询?
【问题讨论】:
标签: mysql ruby-on-rails ruby