Postgres:分组依据内的不同聚合
Postgres: distinct aggregation within group by
我有一个 events
table 有 3 列:
- sequence_id("offer" 显示给许多不同的购物车会话)
- checkout_token(单个访客的购物车会话)
- 操作(用户使用该购物车会话令牌生成的事件类型)
我想输出以下数据(根据我的图像不是实数,只是输出格式的虚拟示例):
sequence_id action_0_unique_count action_1_unique_count
1 5 4
2 2 0
我正在尝试计算每个结帐会话的不同事件类型数(action
枚举列),按 sequence_id
分组
这是我尝试对第 2 列 select 行进行处理的图像示例。第 3 列类似,除了 WHERE action = 1
您可以使用条件聚合:
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;
我有一个 events
table 有 3 列:
- sequence_id("offer" 显示给许多不同的购物车会话)
- checkout_token(单个访客的购物车会话)
- 操作(用户使用该购物车会话令牌生成的事件类型)
我想输出以下数据(根据我的图像不是实数,只是输出格式的虚拟示例):
sequence_id action_0_unique_count action_1_unique_count
1 5 4
2 2 0
我正在尝试计算每个结帐会话的不同事件类型数(action
枚举列),按 sequence_id
这是我尝试对第 2 列 select 行进行处理的图像示例。第 3 列类似,除了 WHERE action = 1
您可以使用条件聚合:
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;