如何对具有一个或多个相关记录的行进行分类

How to classify rows having one or more related records

我需要添加名为 rank_2 的附加列,它将显示来源是否超过 1 个 source_ids。

所以,我需要得到这个结果:

我不知道如何编写查询来获取 rank_2,当源只有 source_id(如源“b”)时它将包含 1,而当源具有唯一的 source_id 时将包含 2来源有 2 个或更多 source_ids(如来源“a”)。

使用计数功能,您将能够解决这个问题:

, 计数(source_id) 为rank_2

不要忘记按日期分组,source_name、source_id。

我只是不明白为什么 source_id 11 需要得到值 1 因为它也在 table.

中显示了两次

假设 window 函数可用,您可以使用如下查询:

select *
     , case when count(*) over (partition by date, source_name) = 1 then 1 else 2 end as rank_2
from t