cannot access field on a value with type string in google bigquery
Consider the example query:
SELECT s.pm_station, s.RH, (CASE
WHEN s.wind_direction="W" then (SELECT ss.W FROM
`Airnow_dataset.station_neighbour` ss
WHERE ss.pm_station=s.pm_station )
ELSE "na"
END) as neighbour_wind_direction
FROM `Airnow_dataset.adjustedTime_met_la_wind_letter` s
BigQuery throws the below error:
\n\n\n\n\ncannot access field pm_station on a value with type string at [3:83]
\n
Solution:
Never use the table alias name same as one of its column name
The problem with this query is that your station_neighbour table has a column named S, so the outer alias for adjustedTime_met_la_wind_letter is shadowed within the CASE WHEN expression. To work around the error, use a different alias, e.g.:
SELECT\n  wind_letter.pm_station,\n  wind_letter.RH,\n  (CASE WHEN wind_letter.wind_direction="W" THEN (\n       SELECT ss.W FROM \n       `Airnow_dataset.station_neighbour` ss \n       WHERE ss.pm_station=wind_letter.pm_station ) \n   ELSE "na" END) as neighbour_wind_direction\nFROM `Airnow_dataset.adjustedTime_met_la_wind_letter` wind_letter\n
            Bozhack-miller
posted onEnjoy great content like this and a lot more !
Signup for a free account to write a post / comment / upvote posts. Its simple and takes less than 5 seconds
Post Comment