首页 > 解决方案 > Redshift:与其他用户打开 2 种聊天类型的用户计数

问题描述

以下是我的数据集的片段:

在此处输入图像描述

我有兴趣查找(either offer_related or request_related) and direct与其他用户进行 2 种聊天的用户数量。

我尝试了分区creatorid和分组,partnerid但也包括其他不受欢迎的情况。

有人知道这个问题的解决方案吗?我正在使用 Amazon Redshift。

具有“offer_related”和“request_related”类型的聊天称为工作聊天。

因此,目标是找到与同一个人打开 1 个工作聊天和 1 个直接聊天的人。

例如,

因此,只有用户 A 计入答案,因为他与同一用户 B 有 1 次工作聊天(offer_related)和 1 次直接聊天。

标签: sqlpostgresqlamazon-web-servicesamazon-redshift

解决方案


获取所有请求类型的聊天,按创建者和类型分组 - 然后仅保留具有超过 1 种聊天类型的聊天,最后计算结果集中的行数:

SELECT COUNT(*) FROM 
  (SELECT creatorid FROM chats 
  WHERE type IN ('direct', 'offer_related', 'request_related') 
  GROUP BY creatorid, partnerid, type 
  HAVING COUNT(type) > 1) AS tmp

更新

partnerid在分组子句中添加。


推荐阅读