Ruby on rails 活动记录分组
我在Ruby on rails 活动记录分组,ruby-on-rails,activerecord,ruby-on-rails-3.2,ruby-on-rails-4,Ruby On Rails,Activerecord,Ruby On Rails 3.2,Ruby On Rails 4,我在项目模型中有此查询: report = self.reports.group(:key_id) report.select('key_id, count(*) as count') 要从报告表中获取另一列(级别),我需要添加什么 我尝试将我的列添加到select,但这意味着我也必须对其进行分组,我只想通过key\u id 谢谢如果您想包含关于另一个字段的信息,则必须将该字段包含在组表达式中或作为聚合字段的一部分。这是SQL的一个基本方面 例如,如果要计算与每个键id关联的级别的各种值的出现
项目模型中有此查询:
report = self.reports.group(:key_id)
report.select('key_id, count(*) as count')
要从报告
表中获取另一列(级别
),我需要添加什么
我尝试将我的列添加到select
,但这意味着我也必须对其进行分组,我只想通过key\u id
谢谢如果您想包含关于另一个字段的信息,则必须将该字段包含在组
表达式中或作为聚合字段的一部分。这是SQL的一个基本方面
例如,如果要计算与每个键id
关联的级别的各种值的出现次数,则可以添加计数(级别)
列。聚合字段可能会变得任意“花哨”,例如,正如您在评论中提到的那样,计算不同波段中出现的级别
。您能给出一个所需输入和输出的示例吗?在分组查询中选择的任何字段必须出现在分组表达式中或聚合函数中的规则对于SQL来说是基本的。Output:[#,#..
这就是我现在得到的,我想得到[##..
并且只有键id应该是唯一的如果你也有(比如说)key\u id:34,level:2
在您的数据库中?它将如何选择是显示level:1
记录还是显示level:2
记录?问题是,我正在对记录进行计数,我想检查有多少唯一的键的level<10,或者如果每个键只显示一条记录,则显示level<20或level<30_id,那么如何计算它们呢?您需要根据关键字id和级别进行分组,然后计算结果,或者需要在级别上使用聚合函数。