google-bigquery - BigQuery如何订购嵌套和重复的列?
问题描述
我有一个表格,其中包含某种动物发生的事件,例如购买、死亡、出生等。许多事件发生在不同的日期,但有些事件发生在同一日期(格式 yyyy-mm-dd)。对于在同一日期发生的那些,有“event_id”列进行分类。我的问题是:如何为每个现有动物创建一个查询,该查询返回一个嵌套和重复的列,其中所有事件按日期 + ID 排序?
select animal,
array_agg(struct(event_id, event_date, event_name, event_etc, ...)) as event
from events
group by animal;
解决方案
ARRAY_AGG
支持ORDER BY
(参考)。因此,您可以执行以下操作:
SELECT
animal,
ARRAY_AGG(
STRUCT(
event_id,
event_date,
event_name,
...
) ORDER BY event_date, event_id
) AS events
FROM events
GROUP BY animal;
推荐阅读
- rest - 如何知道对我的代码(服务器)进行了哪些 API 调用?与原生 Android 开发人员合作时
- prestashop - 如何在 prestashop 自定义块上获取当前产品链接?
- python - 如何从上下文中获取视图中对象的id?
- c - K&R 练习 1-8 改进
- angular - 表单以角度提交后,另一个页面中的成功消息
- c# - C# IF 语句双重结果
- python - 如何计算我要生成的文本文件的文件大小?
- python - TensorFlow 伪逆不适用于复杂矩阵
- ocaml - OCaml:表达式周围的括号是什么意思 [x]?
- r - bookdown gitbook 格式:侧边栏的文本标题和 ToC 的不同文本?