Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 活动记录分组_Ruby On Rails_Activerecord_Ruby On Rails 3.2_Ruby On Rails 4 - Fatal编程技术网

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和级别进行分组,然后计算结果,或者需要在级别上使用聚合函数。