假设我们有一个表格,其中包含两列,分别为id和items,如下所示:
id | items |
---|---|
1 | A,B,C,D |
2 | A,B,F,G |
3 | B,C,F,G |
4 | D,E,F,G |
我们的目标是找到items列的交集。要求使用BigQuery SQL语言。
首先,我们可以使用SPLIT函数将items列拆分为单独的项目。这将返回一个数组,我们可以使用UNNEST函数将其展开为单独的行。
然后,我们可以将结果进行分组并选择那些出现在所有组中的项目。此时,我们可以使用HAVING子句结合COUNT DISTINCT函数来获取交集。
以下是完整的代码示例:
SELECT item, COUNT(DISTINCT id) AS count FROM ( SELECT id, SPLIT(items, ',') AS items FROM table_name ), UNNEST(items) AS item GROUP BY item HAVING count = (SELECT COUNT(DISTINCT id) FROM table_name);
这将返回如下结果:
item | count |
---|---|
B | 3 |
F | 2 |
G | 2 |