[英]How to do SQL like queries with Active Record (count, group, order)
我正在学习AR,并尝试通过对数据库的查询来构建类似于表格的Excel。 如果能为我的难题找到有效的查询,我将不胜感激。
我的假设:我已经确定了正确的SQL查询,但是在将其转换为AR可以理解并且可以在我的视图中轻松进行迭代的查询时遇到了问题。
我的尝试:创建一个表,该表按状态和月份对我的用户操作对象进行计数,如下所示:
<table>
User_State Jul-13 Aug-13 Sept-13 Total
FL 10 5 5 20
NY 5 5 5 15
</table>
#<Action id: 1, user_state: "FL", month_part: 2013-07-01, first_name: "John">
#<Action id: 2, user_state: "FL", month_part: 2013-07-01, first_name: "Mike">
#<Action id: 3, user_state: "NY", month_part: 2013-07-01, first_name: "Jim">
SELECT user_state, month_part, count(*) AS month_part_total
FROM actions
WHERE user_state IN
(SELECT DISTINCT (user_state)
FROM actions)
GROUP BY user_state, month_part
我认为您的查询等同于以下内容:
SELECT user_state, month_part, count(*) AS month_part_total
FROM actions
GROUP BY user_state, month_part
就像在where
子句中一样,您正在同一表中检查user_state
。
对于此查询,应执行以下操作:
Action.select("user_state, month_part, count(*)").group(:user_state, :month_part)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.