使用 WITH 子句 [duplicate] 时出现大查询 SQL 语法错误

Big Query SQL syntax error using the WITH clause [duplicate]

提问人:Mariana Magalhães 提问时间:9/28/2023 最后编辑:jarlhMariana Magalhães 更新时间:9/28/2023 访问量:46

问:

我正在使用 Big Query 学习 SQL,但我遇到了一个我无法修复的错误,所以我非常感谢您的帮助。我正在使用 WITH 子句创建一个临时表,并且语法错误始终出现在最后一个括号附近。

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 1000
  )

有谁知道错误在哪里?提前非常感谢您!

我已经尝试再添加一组 paranthesis 并更改它们的位置,以及删除“AS”。

sql google-bigquery 语法错误 临时表

评论

0赞 jarlh 9/28/2023
您需要从longest_used_bike中选择。(在最后一个括号之后。
0赞 jarlh 9/28/2023
请注意,WITH 子句不会创建临时表,它只是一种以(有时)更方便的方式编写查询的方法。
0赞 nbk 9/28/2023
a WITH 就像一个临时视图,在 imo 中是一个临时表

答:

0赞 Confusious 9/28/2023 #1

我认为其中一个列名(bikeid)不正确,并且您的语句不完整(没有SELECT),结果中也应该有ORDER BY和LIMIT子句。这对我有用:

WITH longest_used_bike AS
(
  SELECT 
    bike_id,
    SUM(duration_minutes) AS trip_duration
  FROM 
    `bigquery-public-data.austin_bikeshare.bikeshare_trips` 
  GROUP BY
    bike_id
)
SELECT *
FROM longest_used_bike
ORDER BY trip_duration DESC
LIMIT 1000
;