如何在bigquery的SQL子句的WHERE部分引用变量?
我找到了这个密码。。。除了语法问题,缺少逗号,使用函数作为字段,至少…,它在Google BigQuery中给了我一个错误,WHERE子句中有日期。不确定这是否是BQ中的错误,或者只是无法猜测日期如何在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
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: