ruby-on-rails - 在 Active Record 中乘以列?
问题描述
有以下 sql 查询,我将如何翻译 Active Record 中两列的乘法?
SELECT plan_name, plan_price, count(plan_id), plan_price*count(plan_id) AS totalrevenue
FROM leads
INNER JOIN plans p ON leads.plan_id = p.id
WHERE lead_status_id = 5
GROUP BY plan_name, plan_price;
解决方案
我会尝试这样的事情。
leads = Lead.joins(:plans).
where(lead_status_id: 5).
group(:plan_name, :plan_price).
select('plan_name, plan_price, count(plan_id), plan_price * count(plan_id) AS totalrevenue')
leads.each { |lead| puts lead.totalrevenue }
笔记:
- 我不知道是
joins(:plan)
还是joins(:plans)
,这取决于你的联想 - 如果您甚至需要打电话给
plan_id
计数,我什至会为该字段命名 - 如果您打印整个对象,则不会显示类似的字段
totalrevenue
,因为它不是它的一部分,它是一个虚拟属性
推荐阅读
- c - 如何从字符串中获取最后一个字符
- azure - UserLastLogon - 导出
- go - 单一方法上的多个接收器
- python - 保存后“OSError:无法将文件解释为泡菜”
- java - 寻找回文数
- hadoop - 高可用性在 Hadoop 集群中不起作用
- powershell-7.0 - New-AzureADApplication RequiredResourceAccess
- javascript - 单击按钮发送 HTTP 请求时防止 HTML 页面重新加载 [更新]
- java - Android Studio 记住播放器进度
- node.js - 使用 MongoDB 和 Graphql 管理聊天室中的消息