sql - 根据 Id 获取每个状态的计数
问题描述
我有一个名为的主表和一个名为的mail_recievers_master
子表mail_recievers
。common_id 是primary key
主表和foreign
子表中的键。
我可以通过使用获取主详细信息
select *
from mail_recievers_master
通过此查询,我们将获得主表中的所有详细信息。这可以。
正如我们所知,主表将有一个记录,common_id
并且在子表中将有多个记录common_id
,因为子表包含邮件接收者。
在子表mail_recievers
中,我将有状态列,我将存储天气邮件sent
或Invalid
或bounced
或Initiated
我将存储。
插入记录时的状态将是Initiated
退回时的状态将是bounced
发送邮件时的状态 sent
。所以我可能只有sent
状态记录或 Sent
使用Bounced
or sent
, bounced
, Initiated
。
在这里,我的要求是我需要获取主表的所有详细信息,并且基于个人common_id
我需要获取所有状态的计数。
可能有一个或多个状态,common_id
我需要计算所有状态。
解决方案
您可能正在寻找条件聚合,在一行中显示每封邮件的所有计数。
select *
from mail_recievers_master mrm
left join
(
select
common_id,
count(*) filter (where status = 'sent') as sent,
count(*) filter (where status = 'invalid') as invalid,
count(*) filter (where status = 'bounced') as bounced,
count(*) filter (where status = 'initiated') as initiated
from mail_recievers
group by common_id
) mr on mr.common_id = mrm.common_id
order by mrm.common_id;
推荐阅读
- html - 如何在我的列中显示这些数据?
- swift - 了解 UIViewRepresentable
- android - 多个视图与多个片段
- unicode - U+0085 NEXT LINE (NEL) 是否已弃用?
- r - 为观察的子集创建一个随机二元变量,将 1 分配给特定比例的行
- python-3.x - TypeError:使用运算符包时无法解压不可迭代的 NoneType 对象
- java - WeldContainer 和 SeContainer
- java - 如何在使用 java aws sdk 创建 aws ec2 时提供实例的名称
- arrays - CUDA中多维数组的结构
- reactjs - 编辑按钮上的编辑行单击“react-bootstrap-table-next”