我正在尝试运行此查询,但它一直给我一个 GROUP BY 语句的语法错误。谁能告诉我我可能做错了什么?

I am trying to run this query but it keeps giving me a syntax error for the GROUP BY statement. Can anyone please tell me what I might be doing wrong?

提问人:Moch 提问时间:8/10/2023 最后编辑:jarlhMoch 更新时间:8/10/2023 访问量:37

问:

它一直给我一个 GROUP BY 语句的语法错误。我正在尝试学习 WITH 语句。

我正在尝试运行此查询,但它一直在 GROUP BY 函数末尾给我一条关于 DESC 的消息。请告诉我如何纠正这个问题。我希望运行查询并给我最长的自行车骑行时间。下面是我输入的代码

WITH longest_used_bike AS (
  SELECT
   bike_id,
   SUM(duration_minutes) AS trip_duration
  FROM 
   bigquery-public-data.austin_bikeshare.bikeshare_trips
  GROUP BY 
   trip_duration DESC
  LIMIT 1
  )

每当我运行时,它都会给我这个错误:

语法错误:应为“)”,但在 [8:18] 处获得关键字 DESC

SQL 语法错误 带子句

评论

1赞 jarlh 8/10/2023
WITH 子句不能单独存在,它是 SELECT 的一部分。
1赞 jarlh 8/10/2023
DESC用于 ORDER BY.,而不是 GROUP BY。
2赞 jarlh 8/10/2023
今日小贴士:采取小步骤。同时尝试一件新事物。

答:

0赞 Jonathan Willcock 8/10/2023 #1

我认为您显示的内容只是完整查询中的一个片段,因为后面需要跟着一个 .另外,请标记您正在使用的数据库。WITHSELECT

您需要将其分为两个阶段,首先您需要找到所有自行车的持续时间,然后您可以采取最高。像这样的东西:

WITH bike_durations AS (
  SELECT
   bike_id,
   SUM(duration_minutes) AS trip_duration
  FROM 
   bigquery-public-data.austin_bikeshare.bikeshare_trips
  GROUP BY bike_id
  ),
longest_used_bike AS (
    SELECT bike_id FROM bike_durations
    ORDER By trip_duration DESC
    LIMIT 1)