提问人:Tricia Ludwig 提问时间:9/16/2023 最后编辑:marc_sTricia Ludwig 更新时间:10/24/2023 访问量:61
我在关注老师的帖子制作临时表时在 BigQuery Sql 中出现错误,它不喜欢括号,我不知道为什么?
I have an error in BigQuery Sql while following teacher's post to make a temp table, it doesn't like the parentheses and I don't know why?
问:
WITH trips_over_1_hr AS
(
SELECT *
FROM
`bigquery-public-data.new_york_citibike.citibike_trips`
WHERE
tripduration >= 60
)
我按照老师的演示输入了这个,然后得到了这个错误
语法错误:脚本在 [8:2] 意外结束
所以我不知道该怎么办。
我试着删除括号,移动括号,重写整个东西,我不知道还能尝试什么。
答:
“WITH CTE_Name AS ()”是 CTE。使用 CTE 需要在 () 之后使用 SELECT。只需从CTE_Name添加一个 SELECT。
但是,CTE 的用途是用于准备数据集,您最终将在最终选择中加入或过滤这些数据集。因此,您可以在如下所示的内容中使用它:
WITH CTE_Name AS
(
SELECT Columns
FROM Table1
WHERE Column = Criteria
)
SELECT *
FROM Table2 t2
JOIN CTE_Name CTE on CTE.ColumnX=t2.ColumnX;
我也是数据分析的新手,当我在“)”之后运行“WITH”子句示例时遇到了同样的错误。
我理解这是多么令人困惑。“WITH”子句的视频教程有一个返回结果的演示,所以我也对为什么我得到错误而不是临时表感到困惑。
溶液:
您的说明可能有一个“第 2 部分”,您需要在“)”之后继续。我运行了下面的示例,错误不再出现。
跟
longest_used_bike AS (
选择
bike_id,
SUM(duration_minutes) 作为 trip_duration
从分组依据
bike_id
排序方式
trip_duration DESC
限制 1
)bigquery-public-data.austin_bikeshare.bikeshare_trips
您需要继续执行与以下查询类似的其余查询
选择 Trips.start_station_id, 计数 (*) 作为trip_ct 从 longest_used_bike AS 最长 内部连接 bigquery-public-data.austin_bikeshare.bikeshare_trips AS 行程 开longest.bike_id = trips.bike_id 分组依据 trips.start_station_id 排序方式 trip_ct DESC 限制 1
评论
SELECT * FROM trips_over_1_hr