
現在、couseraの「Google データアナリティクス プロフェッショナル認定証」を実践している。
その中で、度々クエリのエラーが出ているので、備忘録としてメモしておく。
5 .データを分析し、答えを導き出す > モジュール4 > 実践編:一時テーブルを作成する
記載内容通りにクエリを入力、実行するとエラーが出る。
実行クエリ
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
  ORDER BY
    trip_duration DESC
  LIMIT 1 
)
## 最長距離移動した自転車の出発地点を調べる 
SELECT
  trips.start_station_id,
  COUNT(*) AS trip_ct
FROM
  longest_used_bike AS longest
INNER JOIN
  bigquery-public-data.austin_bikeshare.bikeshare_trips 
ON longest.bike_id = trips.bike_id
GROUP BY
  start_station_id
ORDER BY
  trip_ct DESC
LIMIT 1
エラー
Unrecognized name: trips; Did you mean trip_id? at [22:22]
確認したところ、以下のようである。
エラーの原因は、
tripsがクエリ内で定義されていないためです。この名前を使っている箇所では正しいテーブルエイリアスが必要です。
ということで、修正したコードは以下。
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
  ORDER BY
    trip_duration DESC
  LIMIT 1
)
## 最長距離移動した自転車の出発地点を調べる 
SELECT
  trips.start_station_id,
  COUNT(*) AS trip_ct
FROM
  longest_used_bike AS longest
INNER JOIN
  `bigquery-public-data.austin_bikeshare.bikeshare_trips` AS trips
ON longest.bike_id = trips.bike_id
GROUP BY
  trips.start_station_id
ORDER BY
  trip_ct DESC
LIMIT 1;
これで、エラーがなく正しい値が返ってきたので、解決。

コメントを残す