首页 > 解决方案 > 如何根据bigquery中另一列中的重复值计算一列

问题描述

我有下表

学生卡 科目
1 数学
英语
2 数学

我需要计算每个科目有多少学生

我尝试执行以下查询,但在 +4TB 数据上出现错误“超出资源”(主题数组在实际数据中很大)

    选择主题,计数(不同的 id)
    从 my_table t,
    unnest(t.subjects) 主题
    按主题分组

我认为未嵌套和太大数据的问题是什么?有什么建议么?

标签: google-bigquerybigdata

解决方案


尝试使用 APPROX_COUNT_DISTINCT,如下例所示

select subject, approx_count_distinct(student_id) students
from my_table t,
unnest(t.subjects) subject
group by subject

推荐阅读