google-bigquery - 如何根据bigquery中另一列中的重复值计算一列
问题描述
我有下表
学生卡 | 科目 |
---|---|
1 | 数学 |
英语 | |
2 | 数学 |
我需要计算每个科目有多少学生
我尝试执行以下查询,但在 +4TB 数据上出现错误“超出资源”(主题数组在实际数据中很大)
选择主题,计数(不同的 id) 从 my_table t, unnest(t.subjects) 主题 按主题分组
我认为未嵌套和太大数据的问题是什么?有什么建议么?
解决方案
尝试使用 APPROX_COUNT_DISTINCT,如下例所示
select subject, approx_count_distinct(student_id) students
from my_table t,
unnest(t.subjects) subject
group by subject
推荐阅读
- java - 努力在Spring Boot中获取多个具有相同名称的输入字段值
- android - Android BiometricPrompt.Builder.authenticate() 没有显示任何对话框
- php - 在 laravel 中通过 id 获取所有用户的电子邮件
- node.js - 使用 puppeteer 如何获取节点的所有子节点?
- angular - Angular 7拦截器获取本地存储值并添加到标头
- java - 使我的代码更加健壮,适用于 Appium Android 自动化
- java - 线程“主”org.openqa.selenium.NoSuchElementException 中的异常:无法找到元素://input[@name='firstName']
- javascript - 也许 javascript 解释中的 monad 示例代码
- javascript - 如何根据php条件隐藏和显示html表中的列
- powershell - PowerShell 文件监控和文本转语音