【问题标题】:Error: Unrecognized name: Google BigQuery错误:无法识别的名称:Google BigQuery
【发布时间】:2018-03-30 09:36:24
【问题描述】:

我是 SQL 新手,我正在尝试在 Google BigQuery 中进行如下查询:

 SELECT client, begindate, enddate, 
 LAG(enddate,1) OVER (PARTITION BY client ORDER BY begindate, 
 client) AS lag,
 ROUND(DATE_DIFF(DATE(begindate), lag, DAY)) as diff
 FROM
 db LIMIT 100;

但它给出了错误“错误:无法识别的名称:滞后于.....”

我真的不明白代码有什么问题;在数据集预览中,我看到新列“lag”已成功创建(当我删除 date_diff 代码时)。那么为什么“滞后”是一个无法识别的名字呢?

【问题讨论】:

  • 列别名不能在定义的同一个选择列表中引用。使用派生表(子查询),然后你可以在它之外引用滞后。
  • 啊,这说明了......

标签: sql google-bigquery


【解决方案1】:

试试这个:

SELECT client,begindate, enddate,lag,
ROUND(DATE_DIFF(DATE(begindate), lag, DAY)) as diff
FROM (
      SELECT client, begindate, enddate, 
      LAG(enddate,1) OVER (PARTITION BY client ORDER BY begindate, 
      client) AS lag, 
      FROM
      db LIMIT 100;
     ) AS t

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 2019-05-24
    • 2020-02-07
    • 2015-06-30
    • 1970-01-01
    • 2022-07-08
    相关资源
    最近更新 更多