如何根据另一个字段计算字段值?

出去

我有EmailEvent桌子。这是存储打开和点击的 STI 表(通过使用type属性)。我现在有这个代码,它提供了有关有多少电子邮件使用收件人地址(email_address字段)的信息:

EmailEvent.where("type = 'OpenEmailEvent' OR type = 'ClickEmailEvent'")
.where(email_id: email_ids).happened_between_dates(start_date, end_date)
.select("email_address, count(distinct email_id) as emails_count")
.group(:email_address).reorder(nil)

它生成这样的代码:

SELECT email_address, count(distinct email_id) as emails_count 
FROM "email_events" 
WHERE "email_events"."deleted_at" IS NULL 
    AND (type = 'OpenEmailEvent' OR type = 'ClickEmailEvent') 
    AND "email_events"."email_id" IN (85487, 75554, 85489, 77184, 78562, 75587, 82879, 85535, 85534) 
    AND (created_at between '2017-02-28 22:52:01.000000' AND '2017-03-29 05:59:59.000000') 
GROUP BY "email_events"."email_address"

我需要提供有关每个email_address. 我不能使用,count(id)因为它会给我打开和点击,所以我需要以type某种方式使用属性,但我无法弄清楚它应该如何工作。有人可以给我建议我应该在这里做什么吗?

马斯塔舒夫

替换这个

count(distinct email_id) as emails_count

类似于在 SQLServer 中使用 case 或 IIF

sum(case when type = 'OpenEmailEvent' then 1 else 0 end)  [Opens],
sum(case when type = 'ClickEmailEvent' then 1 else 0 end)  [Click],

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

JSON模式条件:根据另一个字段的值,该字段是必需的

Django根据另一个字段的值验证字段

根据另一个字段的值验证Django模型字段?

Django根据另一个字段值禁用字段

根据另一个字段更新一个字段

如何根据另一个字段的值启用或禁用字段值的编辑?

根据另一个字段的值禁用一个字段

Laravel根据另一个字段的值来验证该字段

Laravel Validator Facade-根据另一个字段值验证大小

根据角度5中的另一个字段值使表单字段为必填字段

根据另一个字段的值在MongoDB中投影一个字段

如何在odoo中根据另一个字段的值过滤一个Many2one字段

熊猫数据框根据另一个字段的条件更改值

根据另一个计算一个字段

如何根据另一个字段中的值在一个字段中查找和替换?

创建一个字段,该字段可以存储根据另一个文件中的值计算得出的值

SQL仅根据另一个字段的值过滤一个字段的某些值

Linq 使用 select new 中的值来计算另一个字段

Bootstrap x-editable:根据另一个字段的值验证字段

如何读取名称在另一个字段中的行字段的值

根据另一个字段的值验证 JSON 数据

计算输入的值并将结果设置在另一个字段中

如何根据django模型中的另一个字段使字段唯一?

如何根据另一个字段更新mongodb中的数组字典元素

使用haskell根据两个相邻位置中另一个字段的值之间的差异计算字段的值

如何在反应中根据另一个字段更新一个字段?

如何根据另一个字段值创建字段类型?

如何根据另一个字段的值设置输入字段值?

对于每个唯一的 Pandas 系列值,计算另一个字段