使用地点计数函数查询数据集

地点统计函数是在 BigQuery 中运行的预定义 SQL 查询,可用于直接查询数据集。直接查询数据与使用函数之间的主要区别在于,函数不会强制执行最低计数阈值,而是强制执行最小搜索区域

  • 地点数据集查询只能返回 5 个及以上的计数,但对搜索区域的大小没有任何限制。
  • 地点数量函数可以返回任何数量(包括 0),但会强制执行 40.0 米 x 40.0 米(1600 平方米)的最小搜索面积。2函数还可以返回地点 ID,该 ID 可用于查找有关各个地点的信息。

如果您需要了解查询何时未返回任何结果,或者需要了解低于 5 的低地点数,则可能需要使用地点数函数。如果您需要获取各个地点的信息以抽查结果,此方法也很有用。

地点数量函数仅提供数量,因此如果您需要执行更复杂的查询(例如数据联接),或者获取其他数据洞见(例如一组地点的平均评分),请直接查询数据集

支持的地点数量函数和国家/地区

Places Insights 支持以下功能:

除了地点数量之外,PLACES_COUNT_PER_TYPEPLACES_COUNT_PER_GEOPLACES_COUNT_PER_H3 函数还会针对响应的每个元素返回最多 250 个地点 ID。查看所有过滤参数

地点 ID 可用于:

使用函数编写查询

请使用以下格式调用函数:[project name (optional)].[table name].[function name]

如果您在设置“地点概览”时更改了关联数据集的名称,请使用您的自定义名称,而不是此处列出的默认表名称。您还可以选择性地添加项目名称。如果未包含任何项目,查询将默认针对有效项目。

例如:

PROJECT_NAME.places_insights___us.PLACES_COUNT

使用 JSON_OBJECT 将实参传递给函数。

过滤结果

地点数量函数支持多种过滤条件,可用于优化搜索。这些参数(例如 price_leveltypes)区分大小写,并且必须与参数名称完全一致。如需查看完整的选项列表,请参阅过滤条件参数参考

在下一个示例中,您将应用过滤条件,按最低用户评分、价格水平、营业状态以及餐厅是否允许携带狗来限制搜索范围:

SELECT `PROJECT_NAME.places_insights___us.PLACES_COUNT`(
  JSON_OBJECT(
      'geography', ST_GEOGPOINT(-73.9857, 40.7484), -- Empire State Building
      'geography_radius', 1000, -- Radius in meters
      'business_status', ['OPERATIONAL'],
      'types', ["restaurant"],
      'min_rating', 1.3,
      'price_level', ['PRICE_LEVEL_INEXPENSIVE', 'PRICE_LEVEL_MODERATE'],
      'allows_dogs', TRUE
      )
) as count;

地点数量函数示例

以下示例使用 PLACES_COUNT 函数返回纽约市帝国大厦 1,000 米范围内的营业餐厅数量:

SELECT `PROJECT_NAME.places_insights___us.PLACES_COUNT`(
  JSON_OBJECT(
      'geography', ST_GEOGPOINT(-73.9857, 40.7484), -- Empire State Building
      'geography_radius', 1000, -- Radius in meters
      'business_status', ['OPERATIONAL'],
      'types', ["restaurant"]
      )
) as count;

响应包含一个计数:

纽约市的 Place Count 函数的结果。

此示例使用 BigQuery ST_GEOGPOINT 函数从点返回 GEOGRAPHY 值,然后将该值传递给 geography 参数。它还会传递该点周围的搜索半径和要搜索的地点类型 "restaurant"

按类型、地理位置或 H3 划分的地点数量示例

除了地点数量之外,PLACES_COUNT_PER_TYPEPLACES_COUNT_PER_GEOPLACES_COUNT_PER_H3 函数还会返回响应中包含的地点对应的最多 250 个地点 ID。

例如,PLACES_COUNT_PER_TYPE 函数会返回一个表,其中包含每种地点类型的地点数量。响应中包含一个地点 ID 数组,其中列出了与每种类型匹配的地点。您可以使用返回的地点 ID 查找有关每个地点的信息。

以下函数调用会返回类型为 restaurantcafebar 的地点的数量:

SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_PER_TYPE`(
  JSON_OBJECT(
      'geography', ST_GEOGPOINT(-73.9857, 40.7484), -- Empire State Building
      'geography_radius', 1000, -- Radius in meters
      'types', ["restaurant", "cafe", "bar"],
      'business_status', ['OPERATIONAL']
      )
);

此函数会返回一个包含三列的表:typecountsample_place_idscount 列显示每个 type 的地点数量,sample_place_ids 列显示每个 type 最多 250 个地点 ID。

纽约市的 Place Count Type 函数的结果。

直观呈现结果

分析和商业智能工具对于帮助您从 BigQuery 数据中发现数据洞见至关重要。BigQuery 支持多种 Google 和第三方数据可视化工具,您可以使用这些工具来分析 Places Insights 数据上函数的结果。

如需查看可视化函数结果的示例,请参阅可视化结果。 如需详细了解如何直观呈现 Places Insights 结果,请参阅直观呈现查询结果

限制和要求

地点数量函数存在以下限制和要求:

  • 仅支持 COUNT 类数据洞见。
  • 搜索区域的最小面积为 40.0 米 x 40.0 米(1600 平方米)。
  • 地点函数计数参数输入大小的上限为 1 MB。
  • 不支持按地点 ID、品牌、电动汽车充电选项或地址组成部分进行过滤。
  • 您只能访问已订阅的城市和国家/地区的地点数量函数。如需了解如何设置 Places Insights 以获取数据集访问权限,请参阅设置 Places Insights
  • 过滤参数(例如 geographytypes)区分大小写,必须与参数名称完全一致,否则查询将失败。