【问题标题】:Postgres Perform Multi table data comparisonPostgres 执行多表数据比较
【发布时间】:2016-04-01 13:51:36
【问题描述】:

我在 Postgres DB 中有以下表结构:

表格区域:

id - int, PK
name - varchar

表格 zone_boundaries

id - int, PK
zone_id - FK (zones.id),
boundary - polygon

桌车

id - int, PK
vehicle_registration - varchar

表格车辆日志

id - int, PK
vehicle_id - int, FK (vehicles.id)
latitude - float
longitude - float

区域边界表中的边界列将 zone_id 指定的区域的纬度/经度坐标保存为多边形数据。

现在,我想在 select 语句中获取其 lat/lng 坐标落在 zone_boundaries 表中区域边界内的所有车辆的数量。如何编写此查询?

【问题讨论】:

    标签: database postgresql-9.4


    【解决方案1】:

    获得这一通行证会很棘手。首先,您需要转换 latitude 和 longitude ,例如:

    ST_GeometryFromText('POINT(x y)');
    

    之后,您可以使用 ST_Intersects。 St_Intersects 将返回两个几何是否相交。或者,您可以使用 ST_CONTAINS。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-29
      • 2015-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-18
      • 2018-06-23
      相关资源
      最近更新 更多