ruby-on-rails - 包含的子查询上的 Active Record 选择字段
问题描述
我有一些要转换为 ActiveRecord 的 sql
sql看起来像
select type.name, sum(order.sub_total)
from orders order
join order_types type on type.id = order_type_id
group by type.name
我有这个主要工作除了我不知道如何选择type.name
Order.
select("sum(sub_total)").
joins(:order_type).
group("order_type_id`")
我想它应该是这样的:
Order.
select("order_type.name, sum(sub_total)").
joins(:order_type).
group("order_type_id`")
但它不知道order_type.name
在这种情况下是什么,所以这失败了。
任何人都知道我怎么能以一种仍然感觉“乱七八糟”的方式做到这一点
解决方案
你可以这样做:
grouped_orders = Order.select("order_types.name name, sum(orders.sub_total) sub_total")
.joins(:order_type)
.group("order_types.name")
然后,您可以像这样列出订单名称:
grouped_orders.map(&:name)
推荐阅读
- docker - 有没有从运行 Docker 容器到 Kubernetes 部署的好方法?
- r - scale_fill_manual 默认中断:如何分配
- jenkins - 如何在声明性 Jenkinsfile 中跨阶段保留非字符串对象?
- plsql - 将函数调用作为参数传递给插入语句 - 可能的问题
- mysql - Magento 2:如何允许更新具有外键约束的列的空值?
- prometheus - 将字符串附加到grafana查询中的变量?
- c# - 鼠标与孩子一起留在面板上
- hive - -- 不支持配置单元导入的增量 lastmodified 选项
- sql-server - 如何根据 SQL Server 2017 中的最后日期创建一行
- java - 我可以在不使用本机查询的情况下在 JPA 中创建此查询吗?