首页 > 解决方案 > Postgres:group by内的不同聚合

问题描述

我有一个events包含 3 列的表:

我想输出以下数据(根据我的图像不是实数,只是输出格式的虚拟示例):

sequence_id      action_0_unique_count    action_1_unique_count
1                5                        4
2                2                        0

我试图计算每个action结帐会话的 DISTINCT 事件类型数(枚举列),按 sequence_id 分组

在此处输入图像描述

这是我尝试为第 2 列选择哪些行的图像示例。第 3 列将是相似的,除了WHERE action = 1

标签: sqldatabasepostgresqlrdbms

解决方案


您可以使用条件聚合:

select sequence_id,
       count(distinct checkout_token) filter (where action = 0),
       count(distinct checkout_token) filter (where action = 1)
from events
group by sequence_id;

推荐阅读