如何对具有一个或多个相关记录的行进行分类
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
我需要添加名为 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