【发布时间】:2021-03-22 05:08:33
【问题描述】:
我对 BigQuery 和标准 SQL 非常陌生。我可能无法找出解决问题的正确方法。请帮帮我。
我有一个 Country 列和一个 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 值
国家/地区 | Non_Unique_overlapping_ids
美国 | 0
英国 | 0
澳大利亚 | 1
我有 88 个不同的国家和超过 500 万个唯一 ID
请帮助我。 感谢您的时间和耐心。
【问题讨论】:
-
欢迎,您有到目前为止尝试过的查询示例吗?
-
请解释预期输出背后的逻辑,只是
UNIQUE OVERLAPPING和UNIQUE non-OVERLAPPING并不能解释全部 - 因为它可以以多种方式解释 -
@MikhailBerlyant UNIQUE OVERLAPPING 将计算 Country = USA 的唯一 ID,该 ID 在所有其他 Country 值及其自身中重复。因此,如果您查看主表,我们会看到 USA 有 2 个唯一 ID,它们出现在其他国家/地区。同样的逻辑适用于 Country = UK , Country = AUS。 UNIQUE non-OVERLAPPING 表将返回 Country = USA OR Country = UK 或 Country = AUS 的那些唯一 IDS,它们从未出现在其他国家/地区值中,而是出现在其自身中。这有意义吗?对不起,这很令人困惑,但是是的。
-
与显示的 output1 不匹配...所以请解释为什么在 output1 中美国有 2 而不是 1(只有 id_2 在所有国家/地区之间共享 - 所以我希望看到 1 而不是 2)跨度>
-
@BenP 我什么都没有,因为我很困惑如何解决这个问题。
标签: google-bigquery overlapping distinct-values