目前我正在研究生成数据库的人口统计数据,并且我们geography
在其中一个表中添加了数据类型。对于人口统计,我必须用其他东西生成列的最大值、最小值和平均值。
使用
select MIN(Location) FROM SpatialTable
没有工作,因为地理数据类型是无与伦比的。
所以我使用了以下查询:
SELECT Location
FROM SpatialTable
WHERE Location.Lat IN (SELECT MIN(Location.Lat)
FROM SpatialTable
WHERE Location.Long IN (SELECT MIN(Location.Long)
FROM SpatialTable))
它基本上选择具有最小经度的记录,然后在这些记录中选择具有最小纬度的记录。但这也可以通过其他方式完成,其中选择第一个 MIN 纬度,其中选择 MIN 经度,如下所示:
SELECT
Location
FROM
SpatialTable
WHERE
Location.Long IN
(SELECT MIN(Location.Long)
FROM SpatialTable
WHERE Location.Lat IN (SELECT MIN(Location.Lat) FROM SpatialTable))
这可能会产生不同的结果。
有没有一种精确的方法来比较地理数据。我正在使用 SQL Server 2008 R2 版本,并且我的表有一个地理类型的 Location 列和一个标识列。