【发布时间】:2021-01-25 08:10:37
【问题描述】:
我在 Google BigQuery 中使用标准 SQL。我试图列出 2018 年 12 月从北格林威治村到南格林威治村的 tlc 黄色旅行次数(这些是taxi_zone_geom 表中的 zone_id)和总量。 zone_id 对应 tlc_yellow_trips_2018 表中的pickup_location_id 和 dropoff_location_id。
taxi_zone_geom 表:
Row zone_id zone_name borough zone_geom
1 1 Newark Airport EWR POLY
2 3 Allerton/Pelham Gardens Bronx POLYGON((-73.8...
trips_2018 表
Row vendor_id pickup_datetime dropoff_datetime passenger_count trip_distance rate_code store_and_fwd_flag payment_type fare_amount extra mta_tax tip_amount tolls_amount imp_surcharge total_amount pickup_location_id dropoff_location_id
1 2 2018-05-06T21:13:05 2018-05-06T21:35:33 1 9.83 1 N 1 29 0.5 0.5 6.06 0 0.3 36.36 138 65
2 1 2018-05-06T21:59:42 2018-05-06T22:25:17 1 10.7 1 N 1 32 0.5 0.5 6.65 0 0.3 39.95 138 25
3 1 2018-05-06T23:54:05 2018-05-07T00:19:30 2 9.6 1 N 1 30.5 0.5 0.5 6.35 0 0.3 38.15 114 116
这很好用:
SELECT EXTRACT(MONTH FROM pickup_datetime) AS Month,
COUNT(*) AS Dec_trips_GVNorth_to_GVSouth,
SUM(total_amount) as total,
FROM `bigquery-public-data.new_york_taxi_trips.tlc_yellow_trips_2018` AS t
LEFT JOIN `bigquery-public-data.new_york_taxi_trips.taxi_zone_geom` AS g ON t.pickup_location_id=g.zone_id WHERE g.zone_name='Greenwich Village North'
GROUP BY Month HAVING Month=12
但是,我需要通过加入同一个表来链接到 drop_off,我尝试使用如下所示的辅助连接来执行此操作:
LEFT JOIN `bigquery-public-data.new_york_taxi_trips.taxi_zone_geom` AS g2 ON t.dropoff_location_id=g2.zone_id WHERE g2.zone_name='Greenwich Village South'
这会导致错误“语法错误:预期输入结束,但在 [7:1] 获得关键字 LEFT”
我做错了什么?谢谢
【问题讨论】:
-
请在代码问题中给出minimal reproducible example--cut & paste & runnable code,包括最小的代表性示例输入作为代码;期望和实际输出(包括逐字错误消息);标签和版本;明确的规范和解释。给出尽可能少的代码,即您显示的代码可以通过您显示的代码扩展为不正常的代码。 (调试基础。)对于包含 DBMS 和 DDL(包括约束和索引)的 SQL,并以表格格式作为代码输入。 How to Ask 暂停总体目标的工作,将代码砍到第一个表达式,没有给出你期望的内容,说出你期望的内容和原因。
-
您有语法错误。阅读语法和手册。显示组成子表达式是好的。
标签: sql count google-bigquery sum inner-join