【发布时间】:2021-08-13 19:44:48
【问题描述】:
我一直在尝试连接表,其中一个包含 UserId,另一个包含用户执行的每个操作的行。目标是汇总用户每天执行的操作。
表 1:
| UserId | date |
| -------- | -------------- |
| 13 | 2021-08-04 |
| 13 | 2021-08-05 |
| 13 | 2021-08-06 |
| 14 | 2021-08-04 |
| 14 | 2021-08-05 |
| 14 | 2021-08-06 |
| 15 | 2021-08-05 |
| 15 | 2021-08-06 |
表 2:
| UserID | ActionDate | ActionVal |
|---|---|---|
| 13 | 2021-08-04 | 2.6 |
| 13 | 2021-08-04 | 5 |
| 13 | 2021-08-05 | 15 |
| 14 | 2021-08-05 | 7 |
| 14 | 2021-08-05 | 2 |
| 14 | 2021-08-05 | 0 |
| 15 | 2021-08-05 | 13 |
| 15 | 2021-08-06 | 27 |
我的查询:
SELECT Table1.UserId,Table1.date,aggTable2.tdTotalValue, aggTable2.controlDate, aggTable2.controlUserId
FROM Table1
JOIN(
SELECT
SUM(ActionVal) tdTotalValue,
ActionDate controlDate
UserId controlUserId
FROM Table2
GROUP BY ActionDate, UserId
) as aggTable2
ON aggTable2.controlDate = Table1.date AND Table1.UserId = aggTable2.controlUserId
GROUP BY aggTable2.controlDate,Table1.UserId
但是,这会导致返回错误: SELECT 列表表达式引用 aggTable2.tdTotalValue 既不分组也不聚合为 1:1
这对我来说真的很奇怪,因为我已经预先汇总了表格以确保不会发生这种情况。
我很迷茫,感谢所有建议。
【问题讨论】:
标签: sql google-bigquery