Google bigquery 如何在BigQuery中执行switch语句而不出现聚合错误?
在BigQuery中,我有一个表,在wkly_ul_pc和wkly_dl_pc列中有一个每周运行平均值。我想将第一周出现的值置零。由于存在多个时间序列,因此我无法使用Google bigquery 如何在BigQuery中执行switch语句而不出现聚合错误?,google-bigquery,case,Google Bigquery,Case,在BigQuery中,我有一个表,在wkly_ul_pc和wkly_dl_pc列中有一个每周运行平均值。我想将第一周出现的值置零。由于存在多个时间序列,因此我无法使用排序依据并计算行号。相反,我检查日期本身。以下是我查询的相关部分: SELECT QOSdate, ID, CASE WHEN QOSdate > 6 + MIN(QOSdate) THEN wkly_ul_pc ELSE NULL END AS
排序依据
并计算行号。相反,我检查日期本身。以下是我查询的相关部分:
SELECT
QOSdate,
ID,
CASE
WHEN QOSdate > 6 + MIN(QOSdate)
THEN wkly_ul_pc
ELSE NULL
END AS wkly_ul_pc,
CASE
WHEN QOSdate > 6 + MIN(QOSdate)
THEN wkly_dl_pc
ELSE NULL
END AS wkly_dl_pc
FROM
running_avg
但我得到了这个错误:
选择列表表达式引用既不分组也不聚合的列QOSdate
我看到过对这个错误的响应,其中数据是使用
groupby
进行分组的,而试图使用的变量不在分组中。但我不确定这里有什么问题。当我省略QOSdate和ID时,也会出现相同的错误,只是问题出在when
子句中的引用。尝试MIN(QOSdate)OVER()
而不是MIN(QOSdate)
-注意:基于标记和问题本身-我假设您使用BigQuery。但这与问题的标题冲突@Mikhailberlyan你是对的,标题是一个错误-修正OVER()
似乎可以解决问题-谢谢!