我只是按照课程中的查询进行操作,但我无法弄清楚为什么会收到错误消息。
语法错误:应为“(”或“,”或关键字 SELECT 但得到了结束 [13:6] 的脚本
With
longest_used_bike AS (
SELECT
Bikeid,
SUM(duration_minutes) AS trip_duration
FROM
bigquery-public-data.austin_bikeshare.bikeshare_trips
GROUP BY
Bikeid
ORDER BY
Trip_duration DESC
LIMIT 1
)
为什么会出现这个错误?
我有同样的问题。我了解到 CTE(WITH 子句)不能作为独立的代码段工作——它是更大语句的一部分。要完成您的代码,您必须添加一个 SELECT 语句。
这是我认为会发生的事情:
WITH longest_used_bike AS (
SELECT
bikeid,
SUM(duration_minutes) AS trip_duration
FROM `bigquery-public-data.austin_bikeshare.bikeshare_trips`
GROUP BY bikeid
ORDER BY trip_duration DESC
)
/* add your SELECT statement here */
SELECT *
FROM longest_used_bike;
/* or whatever else */
你得到这个错误是因为 CTE(即
WITH
语句)只是查询的 part。它后面需要跟另一个语句,通常是SELECT
.
也许你打算:
With longest_used_bike AS (
SELECT Bikeid, SUM(duration_minutes) AS trip_duration
FROM `bigquery-public-data.austin_bikeshare.bikeshare_trips`
GROUP BY Bikeid
ORDER BY Trip_duration DESC
LIMIT 1
)
select *
from longest_used_bike;
我还假设您正在使用 BigQuery。表名需要用反引号括起来。
我在课程中也遇到了这个问题
来自课程,写在代码的形象下。 “如果你现在运行它,它会返回一个错误,因为你还没有编写任何查询。现在,是时候编写一个查询来标识这辆自行车出来的起点站了。”
要解决此问题,请添加另一个 SELECT 语句。
我今天在课程中遇到了同样的问题。通过在末尾添加 SELECT 语句将解决此问题。在这种情况下,我们只是创建了一个临时表而没有提供任何查询来使用它,这就是我们收到此错误的原因。
您可以在此处找到有关语法的更多信息:https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax
活动在创建临时表后有一条注释,上面写着“如果您现在运行它,它将返回一个错误,因为您还没有编写任何查询。现在,是时候编写一个查询来识别这辆自行车出来的起点站。” 您只需要继续阅读活动,您就会明白为什么会出现错误。
建议在开始活动之前先看一下活动,这样您就会知道在完成活动时会遇到什么。
我在课程中遇到了这个问题。
在底部没有 SELECT 语句的情况下在 BigQuery 中创建临时表将导致此错误。通过在末尾添加 SELECT 语句将解决问题。
因此,只需在您创建的临时表下面添加一条语句: 从 longest_used_bike 中选择 *
带有第 1 列,第 2 列 作为 ( 选择列 1、列 2 等等等等 )
目前选择时只有一列和两列。
当您创建一个临时表时,将您的查询添加到临时表的正下方,不带“;”参考看这个
With
longest_used_bike AS (
SELECT
Bikeid,
SUM(duration_minutes) AS trip_duration
FROM
bigquery-public-data.austin_bikeshare.bikeshare_trips
GROUP BY
Bikeid
ORDER BY
Trip_duration DESC
LIMIT 1
)
SELECT *
FROM longest_used_bike;