对于每个我要采用其内所有地址点的该值字段的模式。
我设法获得更新以计算平均值。但是我需要模式。我需要知道每个地区的重复性最高的值
UPDATE
DISTRICTS
SET AverageOfValue = (
SELECT Avg(Address_Value)
FROM Address A with (index(OBJECTID))
WHERE DISTRICTS.Shape.STIntersects(A.Shape) = 1 AND Address.Address_Value is not null)
我正在努力尝试并对其进行调整以计算模式。我该怎么办?
例如如果下表是属于特定区域的所有地址点的子集,那么我要提取的模式值将为8,并在“区域”层中更新一个ModeValue字段。
+----------+---------------+
| OBJECTID | Address_Value |
+----------+---------------+
| 23 | 8 |
| 29 | 8 |
| 35 | 5 |
| 42 | 4 |
| 44 | 8 |
| 47 | 9 |
| 58 | 8 |
+----------+---------------+
答案 0 :(得分:1)
模式是最频繁的值。您可以使用聚合来计算:
UPDATE DISTRICTS
SET ModeValue = (SELECT TOP (1) Address_Value
FROM Address A with (index(OBJECTID))
WHERE DISTRICTS.Shape.STIntersects(A.Shape) = 1 AND
Address.Address_Value is not null
GROUP BY Address_Value
ORDER BY COUNT(*) DESC
);