我正在学习AR,并尝试通过对数据库的查询来构建类似于表格的Excel。 如果能为我的难题找到有效的查询,我将不胜感激。

我的假设:我已经确定了正确的SQL查询,但是在将其转换为AR可以理解并且可以在我的视图中轻松进行迭代的查询时遇到了问题。

我的尝试:创建一个表,该表按状态和月份对我的用户操作对象进行计数,如下所示:

想要View中的最终输出:

<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

===============>>#1 票数:0

我认为您的查询等同于以下内容:

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)

  ask by Jay Bobo translate from so

未解决问题?本站智能推荐:

1回复

如何检查仅特定用户的记录是否存在?

现在在我的POST路线中,我有这个: 如果用户两次添加相同的状态,他们将收到错误消息,并且不会向数据库添加重复项。 很好,但是当NEW用户添加相同的状态时,他们会收到相同的错误消息。 如何检查记录是否仅针对current_user存在? 如果不存在,我希望将current_user
2回复

ActiveRecord 3“ IS IN”在哪里查询

进行IS IN查询的最佳方法是什么,尤其是在涉及联接时? 目前,我有以下内容: 这可以完成工作。 产生的WHERE子句类似 我觉得这会更干净: 有没有办法避免使用第一种样式,而使用更类似于第二种样式的东西? (即,where方法识别数组并使用IS IN而不是'=
2回复

如何使用Ruby Gem ActiveRecord,Sinatra和Postgres搜索表[关闭]

如何使用Ruby Gem ActiveRecord,Sinatra和Postgres进行单词搜索? 我的表看起来像这样: 我正试图在标题和正文字段中搜索关键词。 使用ActiveRecord文档我尝试了Post.find_by(body: "a")但得到了一个空的结果,我的身
2回复

使用RVM使用sinatra app加载Active Record gem时出错

我为我正在启动的sinatra应用程序设置了一个项目级别的RVM gemset,它将使用Active Record连接到本地数据库。 为了测试它,我尝试运行以下测试应用程序: test.rb (摘自这个问题的答案: 使用Sinatra时与数据库交谈的最佳方式是什么? ) 当
2回复

Active Record 4.x和MySQL表列类型,不使用迁移

我正在使用Sinatra v1.4.4和Active Record v4.0.2进行一些测试。 我已经创建了一个DBase和一个名为Company with Mysql Workbench的表。 在表公司中,分别有两个字段lat和long分别为DECIMAL(10,8)和DECIMAL(11
1回复

如何使用活动记录从ruby sinatra中的数据库读取

我想使用active_record从数据库中读取条目,并不断获得不同的错误,例如:名称错误,找不到数据库或它无法执行查询。 所以我的问题是如何从数据库读取或执行SQL查询,例如将结果写入变量?
1回复

如何限制Sinatra / Active Record中数据库字符串值的字符/单词数?

我的ActiveRecord数据库中有一列,我希望有一定的字数限制。 本质上,我创建了一个允许用户输入文本(字符串)的表单。 我想限制该字符串中允许的字符数。 @allposts = Post.limit(20) 到目前为止,这是发布/current所有内容的/current
3回复

当我的对象通过HAML调用时,它会尝试触发Active Record而不是只调用一个方法

在构建要发送给用户的电子邮件时,我会调用以下HAML代码段。 用户对象定义方法primary_email 但我收到错误信息 在我的简单单元测试中,我测试了primary_email方法 那传递得很好。 当我触发发送此模板时,它会运行一次,然后在同一请求中的第
2回复

无法加载'active_record / connection_adapters / postgresql_adapter'Sinatra-Windows 10

无法通过Windows 10上我的Sinatra应用程序中的活动记录连接到数据库,在OSX上没有问题,但我仍然希望能够从Windows计算机上进行开发。 完全错误:C:/Ruby23-x64/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.r
2回复

在模型数组上激活记录to_json \\ as_json

首先,我没有使用Rails。 我正在使用Sinatra进行Active Record的这个项目。 我希望能够在我的Model类上覆盖to_json或as_json,并让它定义一些'default'选项。 例如,我有以下内容: 其中Vendor具有的属性多于id和name。 在