sql - Postgres:group by内的不同聚合
问题描述
我有一个events
包含 3 列的表:
- sequence_id(向许多不同的购物车会话显示的“报价”)
- checkout_token(单个访问者的购物车会话)
- 操作(用户使用该购物车会话令牌生成的事件类型)
我想输出以下数据(根据我的图像不是实数,只是输出格式的虚拟示例):
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
解决方案
您可以使用条件聚合:
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;
推荐阅读
- java - 在 onActivityCreated() 中获取 RecyclerView 视图时出错
- css - 为什么第 n 个子颜色在 markdown++ 查看器中不起作用?
- c# - Mongodb C# 驱动程序执行字符串包含对嵌入文档中的属性的查询
- selenium - TestNG中Appium测试用例的顺序执行导致测试用例失败
- r - 在 R 中创建嵌套列表
- visual-studio-code - 如何让vscode在保存时自动重命名文件?
- android - 如何使用 Firestore 集合中的经度和纬度在地图上显示带有标记的位置?
- ruby - postgresql 中枚举类型列的包含过滤
- java - 为什么android程序不能在我的手机上运行(它可以在虚拟手机上正常运行)
- php - 使用数组的 PHP 递归