【发布时间】:2018-01-19 17:21:45
【问题描述】:
我正在尝试编写一个利用 BigQuery 的“结束”功能的 SQL。
我本质上是在尝试做一些复合和更平滑的回报,但我遇到了一些常规。我的查询如下所示:
WITH daily_extract AS (select date_adjusted,
sum(some_number) as
daily_sum_of_some_number,
entity_id
from `some table`
where 1=1 -- no filter
and 1=1 -- no filter
group by date_adjusted, entity_id
order by date_adjusted
)
select
date_adjusted as date_adjusted,
entity_id as entity_id,
sum(log(1 + daily_sum_of_some_number))
over (PARTITION by entity_id
ORDER by date_adjusted
rows unbounded preceding) as smoothed_number
from daily_extract
group by 1,2
但我得到的是这样的错误:
未能检索到数据 - SELECT 列表表达式引用列 daily_sum_return_selected_nav,该列在 [16:19] 时既未分组也未汇总。
我试图在底部说按 1、2、3 分组,但随后出现错误:
检索数据失败 - 第 3 列包含一个分析函数,该函数在 [18:20] 的 GROUP BY 中是不允许的
我正在阅读下面的链接,但如果有人可以帮助我,将不胜感激!
【问题讨论】:
-
这有点令人困惑,因为您混淆了列 - 但不是错误,但在外部查询中,您的列 a) 不属于聚合函数或 b) 未分组。 daily_sum_return_selected_nav 在哪里使用?如果未聚合,则必须在 group by 中。
标签: sql google-bigquery