python - Google Bigquery - WHERE 子句中的值列表

标签 python sql google-bigquery

我正在尝试从 Google 大查询公共(public)表中查询几何数据,并尝试找出如何在 WHERE 子句中传递值列表/过滤查询。请注意,我正在用 python 编写查询。

这是我的查询:

from google.cloud import bigquery

# Obtain geometries from Google Big Query 

metros = ['Los Angeles-Long Beach-Anaheim, CA','Phoenix-Mesa-Chandler, AZ']

sql = """
  SELECT *
  FROM `bigquery-public-data.geo_us_boundaries.cbsa`
  WHERE name IN UNNEST(metros)
"""

df = client.query(sql).to_dataframe()

我明白了:

BadRequest: 400 Unrecognized name: metros at [4:24]

最佳答案

您需要像这样传递数组:

from google.cloud import bigquery

# Obtain geometries from Google Big Query 

metros = ['Los Angeles-Long Beach-Anaheim, CA','Phoenix-Mesa-Chandler, AZ']

sql = """
  SELECT *
  FROM `bigquery-public-data.geo_us_boundaries.cbsa`
  WHERE name IN UNNEST(%s)""" %(metros)


df = client.query(sql).to_dataframe()

关于python - Google Bigquery - WHERE 子句中的值列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70383675/

相关文章:

python - 使用条件值将列添加到 txt

sql - postgresql 子查询在无效列上失败时返回行

google-analytics - 如何在 BigQuery 中识别广告分发网络

google-bigquery - 在 Google BigQuery 中计算月差

django - 使用 Google BigQuery 作为 Django 的后端

python - 如何将列表中的字符串用作 python 中的字符串方法?

python - Pandas 查找半小时数据帧索引的每日系列值

python - 如何将这段 DRY 代码放入 for 循环中?

mysql - 在另一列中具有不同值的 Id 列需要用特殊值显示

sql - 如何获得不同的多态关联