如何在bigquery的SQL子句的WHERE部分引用变量?

如何在bigquery的SQL子句的WHERE部分引用变量?,sql,google-bigquery,Sql,Google Bigquery,我找到了这个密码。。。除了语法问题,缺少逗号,使用函数作为字段,至少…,它在Google BigQuery中给了我一个错误,WHERE子句中有日期。不确定这是否是BQ中的错误,或者只是无法猜测日期 CREATE TABLE count_unique_subscribers_per_region_per_day AS ( SELECT date(calls.datetime) AS date, cells.region AS region COUNT(DIS

我找到了这个密码。。。除了语法问题,缺少逗号,使用函数作为字段,至少…,它在Google BigQuery中给了我一个错误,WHERE子句中有日期。不确定这是否是BQ中的错误,或者只是无法猜测日期

CREATE TABLE count_unique_subscribers_per_region_per_day AS (
    SELECT date(calls.datetime) AS date,
        cells.region AS region
        COUNT(DISTINCT msisdn) AS count
    FROM calls
    INNER JOIN cells
        ON calls.location_id = cells.cell_id
    WHERE date >= '2020-02-01'
          AND date <= CURRENT_DATE
    GROUP BY 1, 2

);

如何在WHERE子句中引用日期?

如果查看此项目中表的架构,您将看到表调用有一个名为date的列。只要表调用具有列日期,类似问题中的查询就可以工作

如果您看到的错误显示无法识别的name:date at,则表调用可能没有列日期

正如您在这里看到的,如果表具有正确的数据,那么问题中的查询可以毫无问题地运行。哦,我还得加一个分号:

以细胞为单位 选择1个单元id,3个区域 ,称为 选择当前\u时间戳日期时间、当前\u日期、2 msisdn、1位置\u id 选择datecalls.datetime作为日期, 区域作为区域, COUNTDISTINCT msisdn作为计数 来自电话 内部连接单元 ON calls.location\u id=cells.cell\u id 其中日期>='2020-02-01'
和date如果查看此项目中表的模式,您将看到表调用有一个名为date的列。只要表调用具有列日期,类似问题中的查询就可以工作

如果您看到的错误显示无法识别的name:date at,则表调用可能没有列日期

正如您在这里看到的,如果表具有正确的数据,那么问题中的查询可以毫无问题地运行。哦,我还得加一个分号:

以细胞为单位 选择1个单元id,3个区域 ,称为 选择当前\u时间戳日期时间、当前\u日期、2 msisdn、1位置\u id 选择datecalls.datetime作为日期, 区域作为区域, COUNTDISTINCT msisdn作为计数 来自电话 内部连接单元 ON calls.location\u id=cells.cell\u id 其中日期>='2020-02-01'
下面的日期用于BigQuery标准SQL

只需直接引用datecalls.datetime,如下例所示

CREATE TABLE count_unique_subscribers_per_region_per_day AS (
    SELECT DATE(calls.datetime) AS date,
        cells.region AS region
        COUNT(DISTINCT msisdn) AS count
    FROM calls
    INNER JOIN cells
        ON calls.location_id = cells.cell_id
    WHERE DATE(calls.datetime) BETWEEN '2020-02-01' AND CURRENT_DATE()
    GROUP BY 1, 2

);

下面是BigQuery标准SQL

只需直接引用datecalls.datetime,如下例所示

CREATE TABLE count_unique_subscribers_per_region_per_day AS (
    SELECT DATE(calls.datetime) AS date,
        cells.region AS region
        COUNT(DISTINCT msisdn) AS count
    FROM calls
    INNER JOIN cells
        ON calls.location_id = cells.cell_id
    WHERE DATE(calls.datetime) BETWEEN '2020-02-01' AND CURRENT_DATE()
    GROUP BY 1, 2

);

错误到底是什么?似乎在创建表调用表、单元格之前必须有其他模式table@BryanOfEarth:无法识别的名称:日期[8:5]1 BigQuery似乎存在别名问题。2是什么让您认为此SQL适用于BigQuery?在我看来,它更像MySQL:到底是什么错误?似乎在创建表调用表、单元格之前必须有其他模式table@BryanOfEarth:无法识别的名称:日期[8:5]1 BigQuery似乎存在别名问题。2是什么让您认为此SQL适用于BigQuery?在我看来,它更像MySQL: