后续 - Bigquery 组合来自 2 个不同表的重复字段
@ElliottBrossard 的上述解决方案正是我所寻找的。谢谢!我需要从上面取消嵌套字段以获取学生的聚合。比如说,有一个额外的成本字段(每门课程)例如假设上面在 Student_courses 表中的输出,我需要做类似的事情,
SELECT
COUNT(DISTINCT phone.number),
COUNT(DISTINCT courses.Id),
SUM(courses.Cost)
FROM
student_courses,
UNNEST(phone),
UNNEST(courses)
Run Code Online (Sandbox Code Playgroud)
我对上面的预期答案是 3、4、800 美元(假设 4 门课程每门课程花费 200 美元)。上面的查询最终就像交叉连接一样。是否可以使用单个 Select 从多个嵌套中获取聚合?
这是一个想法,虽然有点冗长:
#standardSQL
SELECT
(SELECT COUNT(DISTINCT number)
FROM UNNEST(numbers) AS number),
(SELECT COUNT(DISTINCT course_id)
FROM UNNEST(course_ids) AS course_id),
course_sum
FROM (
SELECT
ARRAY_CONCAT_AGG(
ARRAY(SELECT number FROM UNNEST(phone))
) AS numbers,
ARRAY_CONCAT_AGG(
ARRAY(SELECT id FROM UNNEST(courses))
) AS course_ids,
SUM((SELECT SUM(cost) FROM UNNEST(courses))) AS course_sum
FROM YourTable
);
Run Code Online (Sandbox Code Playgroud)
参考:
| 归档时间: |
|
| 查看次数: |
10967 次 |
| 最近记录: |