如果仅当当前字段存在于数组中时如何计算或求和字段

Posted

技术标签:

【中文标题】如果仅当当前字段存在于数组中时如何计算或求和字段【英文标题】:How to count or sum fields if only if the current field exists in an array 【发布时间】:2018-02-08 21:24:11 【问题描述】:

我有以下疑问:

SELECT 
count(form_rows.field_name), 
form_rows.field_name, 
sum(form_rows.field_value) as sales, 
form_Submissions.id as fsId 
FROM form_submissions
LEFT JOIN form_rows on form_Submissions.id = form_rows.form_submission_id
WHERE form_submissions.organization_id = 10
GROUP BY form_rows.field_name  

这会重现以下结果:

问题:有没有办法根据field_nameSUMCOUNT

澄清:

假设我有一个数组:["ssn", "price"]

我只想对sales 求和,即field_names 存在于给定数组中

【问题讨论】:

【参考方案1】:

这样不行吗:

SELECT 
count(form_rows.field_name), 
form_rows.field_name, 
sum(form_rows.field_value) as sales, 
form_Submissions.id as fsId 
FROM form_submissions
LEFT JOIN form_rows on form_Submissions.id = form_rows.form_submission_id
WHERE form_submissions.organization_id = 10

AND form_rows.field_names in ('ssn','price')

GROUP BY form_rows.field_name  

【讨论】:

太棒了,我完全忘记了那个选项!因为这只是怪物查询中的一个子查询。

以上是关于如果仅当当前字段存在于数组中时如何计算或求和字段的主要内容,如果未能解决你的问题,请参考以下文章

如果值存在于另一个字段数组中,Laravel 验证规则

当软键盘出现在phonegap中时隐藏输入字段

仅当值存在于 SQL 的另一列中时,如何选择列的值?

django - 如何查询仅描述的对象存在于多对多字段中的位置

如何计算IP或ICMP协议首部里的checksum字段

如何更新 json 类型的 json 中的任何字段?它应该接受一个对象或一个键数组,如果它存在则更新键,否则创建