【问题标题】:Syntax error: Expected "(" or "," or keyword SELECT but got end of script语法错误:应为“(”或“,”或关键字 SELECT 但脚本结束
【发布时间】:2021-06-07 09:36:47
【问题描述】:

我只是按照课程中的查询进行操作,但我不知道为什么会收到错误消息。

语法错误:应为“(”或“,”或关键字 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
)

为什么会出现这个错误?

【问题讨论】:

  • 什么是“课程”?请分享完整和准确的查询,以及您解决问题的尝试,并为您正在使用的数据库系统添加标签
  • 您需要“使用”这个公用表表达式。所以请在 SELECT * FROMlongest_used_bike 之后添加)
  • 您使用的是哪种 DBMS 产品? “SQL”只是所有关系数据库都使用的一种查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品添加tagWhy should I tag my DBMS
  • 请通过编辑为您的问题添加所有说明

标签: sql google-bigquery common-table-expression


【解决方案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
      LIMIT 1
     )
select *
from longest_used_bike;

我还假设您正在使用 BigQuery。表名需要用反引号括起来。

【讨论】:

    【解决方案2】:

    我有同样的问题。我了解到 CTE(WITH 子句)不能作为独立的代码段工作——它是更大语句的一部分。要完成您的代码,您必须添加一个 SELECT 语句。

    这是我认为会发生的事情:

    1. WITH 子句只创建您的临时表
    2. 您需要另一个语句来操作或查询临时表,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 */
    

    【讨论】:

      【解决方案3】:

      我在课程中也遇到过这个问题。

      来自课程,写在代码的形象下。 “如果你现在运行它,它会返回一个错误,因为你还没有编写任何查询。现在,是时候编写一个查询来标识这辆自行车的出发站了。”

      要解决此问题,请添加另一个 SELECT 语句。

      【讨论】:

      • 请添加建议的代码。
      【解决方案4】:

      我在今天的课程中遇到了同样的问题。通过在末尾添加 SELECT 语句将解决此问题。在这种情况下,我们只是创建了一个临时表,而没有提供任何查询来使用它,这就是我们收到此错误的原因。

      您可以在此处找到有关语法的更多信息:https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax

      【讨论】:

      • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
      【解决方案5】:

      该活动在创建临时表后有一条注释,上面写着“如果你现在运行它,它会返回一个错误,因为你还没有编写任何查询。现在,它是是时候编写一个查询来识别这辆自行车的出发站了。” 您只需要继续阅读活动,您就会明白为什么会发生错误。

      建议在开始之前先看一下活动,这样您就会知道在完成活动时会遇到什么。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多