【发布时间】:2019-04-14 12:12:53
【问题描述】:
我有一个包含用户操作的表格(例如查看页面、点击按钮等)。每行包含一个 user_id、一个日期 (created_on) 和操作的名称。我想创建一个查询,它会为每个日期创建一个嵌套字段,其中包含在该日期之前并包括该日期所采取的不同操作。例如,我有一个名为user_actions 的表:
-------------------------------------
| user_id | date | action |
-------------------------------------
| 1 | 2018-04-01 | click |
| 2 | 2018-04-01 | view |
| 1 | 2018-04-02 | view |
| 2 | 2018-04-02 | view |
| 2 | 2018-04-03 | buy |
-------------------------------------
would result in
-------------------------------------
| user_id | date | actions |
-------------------------------------
| 1 | 2018-04-01 | click |
| 2 | 2018-04-01 | view |
| 1 | 2018-04-02 | click |
| 2 | 2018-04-02 | view |
| | | view |
| 2 | 2018-04-03 | view |
| 2 | | buy |
-------------------------------------
在第二个表中,actions 是一个嵌套的重复字段。我知道在某个时间点我可以使用类似于以下内容的内容:
SELECT
user_id,
date,
ARRAY(action)
FROM
user_actions
GROUP BY
1,2
但是我不确定如何扩展它以为原始表中的每个日期提供相同的计算,并且只查看 date 字段之前的时间。
任何帮助将不胜感激。谢谢!
【问题讨论】:
标签: google-bigquery