gpt4 book ai didi

sql-server - SQL Server 查询最近邻 DISTINCT TOP N ORDER BY 距离的空间数据

转载 作者:行者123 更新时间:2023-12-03 11:20:41 25 4
gpt4 key购买 nike

我想知道是否有办法从空间数据列中查询最近的 N 个邻居,丢弃重复项。

例如,我的查询如下所示:

SELECT TOP (@N) Point.STDistance(@Point) AS Distance
FROM MyTable
WHERE Point.STDistance(@Point) IS NOT NULL --For Spatial Index usage
ORDER BY Distance;

它非常有效,但我的结果是:
Distance
3906,81969203873
3906,81969203873
5321,62614141754
5756,28719382942

我试图放置一个 DISTINCT 子句,但它没有使用空间索引。

有任何想法吗?

谢谢

最佳答案

根据 Nearest Neighbor Query and Spatial Indexes 上的 MSDN 描述,您需要使用 STDistance()ORDER BY条款。

  1. The first expression in the ORDER BY clause must use the STDistance() method.

  2. Sort order for the first STDistance() expression in the ORDER BY clause must be ASC.


您可能需要使用 GROUP BYCTEsubquery以避免任何潜在的重复。

关于sql-server - SQL Server 查询最近邻 DISTINCT TOP N ORDER BY 距离的空间数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42694366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com