ActiveRecord查询方法:组

坦率

我已经阅读了有关查询方法“ group”的Ruby文档,但是我很难理解如何使用它。

可以说我有一个名为用户的表,其中有名称,电子邮件,性别字段。

我可以键入User.group(:name).count,它返回键值对为{name:count}的哈希。

为什么User.group(:name)不起作用?

有没有一种对相似名称进行分组并访问这些记录的方法?前任。User.group(:name).first或User.group(:name).each

在我看来,我正在考虑错误地使用“组”。

奥雅纳(Arup Rakshit)

为什么User.group(:name)不起作用?

GROUP BY在SQL中使用时,它也需要一个SELECT子句。但这在您的情况下不存在,并且会引发错误。

在您的第一种情况下,查询为SELECT COUNT(*) from users GROUP BY name,这就是它起作用的原因。

根据您的最后一句话,您需要:

User.group(:name).select(:name).each do |record|
  # work with record
end

我不知道您正在使用什么数据库客户端,但这是来自Postgresql GROUP BY文档的想法

GROUP BY将所有共享相同值的分组表达式的所有选定行压缩为单行。expression可以是输入列名称,也可以是输出列(SELECT列表项)的名称或序号,或者是由输入列值形成的任意表达式。如果有歧义,GROUP BY则将名称解释为输入列名称,而不是输出列名称。

聚合函数(如果有的话)在组成每个组的所有行中进行计算,从而为每个组生成一个单独的值(而没有GROUP BY,聚合将在所有选定行中生成一个单个值)。如果GROUP BY存在,它是不是有效的SELECT列表中的表达式是指未分组列除了聚集函数内,因为会有不止一个可以返回的值对于未分组列。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通用查询方法

来自分类Dev

SQLiteDatabase 查询方法

来自分类Dev

从相关组导出数据的最佳 SQL 查询方法是什么?

来自分类Dev

查询方法#group如何工作?

来自分类Dev

XPath / XML小写查询方法

来自分类Dev

查询方法#group如何工作?

来自分类Dev

从视图内的循环调用查询方法

来自分类Dev

如何从查询方法中选择RecId?

来自分类Dev

这个查询方法是如何工作的?

来自分类Dev

Rails ActiveRecord中的组查询

来自分类Dev

Spring存储库接口:按类型查询方法

来自分类Dev

转换为推荐的参数化查询方法

来自分类Dev

如何在Ruby中查询方法的结果(rails)

来自分类Dev

Spring Data Mongo-查询方法和不同字段

来自分类Dev

在查询方法弹簧JPA滤波器可选条件

来自分类Dev

在.select查询方法中按值数组搜索

来自分类Dev

如何避免熊猫的查询方法中的名称冲突?

来自分类Dev

如何在熊猫查询方法中使用re

来自分类Dev

为什么我的SQLite查询方法返回错误?

来自分类Dev

如何在Ruby中查询方法的结果(rails)

来自分类Dev

如何使用自定义查询方法扩展水线?

来自分类Dev

如何在猫鼬查询方法中返回错误?

来自分类Dev

在 Peewee Models Python 中创建“查询方法”

来自分类Dev

NamedParameterJdbcTemplate 查询方法返回错误的整数值

来自分类Dev

在包含键值对的 Repository 中编写查询方法以检查 DB

来自分类Dev

如何使用Spring Data查询方法编写条件如A And(B或C)的查询?

来自分类Dev

当查询结果不是类时,JPA 查询方法的返回类型是什么?

来自分类Dev

如何使用查询方法在 JPA 中使用自定义查询(spring boot)

来自分类Dev

AngularJS $资源查询方法有效,但获取方法无效

Related 相关文章

热门标签

归档