BigQuery - 如何查找列中多个类别重叠的唯一 ID?

BiqQuery - How to find unique ids overlapping for multiple categories in a column?

我对 BigQuery 和标准 SQL 还很陌生。我可能无法找出解决问题的正确方法。请帮帮我。

我有一个国家列和一个 ID 列。示例如下:

国家 | ID
美国 | id_1
美国 | id_2
美国 | id_1
英国 | id_1
英国 | id_1
英国 | id_2
英国 | id_3
澳大利亚 | id_3
澳大利亚 | id_4
澳大利亚 | id_2

我想要一个结果列,例如:

输出 1: 所有国家/地区的唯一重叠 ID 值

国家/地区 | Unique_overlapping_ids
美国 | 2
英国 | 3
澳大利亚 | 2

输出 2: 所有国家/地区的唯一非重叠 ID 值

国家/地区 | 非_Unique_overlapping_ids
美国 | 0
英国 | 0
澳大利亚 | 1

我有 88 个不同的国家和超过 500 万个唯一 ID

请帮助我。 感谢您的时间和耐心。

以下适用于 BigQuery 标准 SQL

#standardSQL
select country, 
  count(distinct if(shared, id, null)) as Unique_overlapping_ids,
  count(distinct if(shared, null, id)) as Unique_non_overlapping_ids
from `project.dataset.table` 
join (
  select id, count(distinct country) > 1 shared
  from `project.dataset.table`
  group by id
) using(id)
group by country   

如果应用于您问题中的示例数据 - 输出为