Задача: таблица координат широта / долгота. Две строки могут потенциально иметь одинаковую координату. Нам нужен запрос, который возвращает набор строк с уникальными координатами (в возвращенном наборе). Обратите внимание, что distinct
не может использоваться, потому что мне нужно вернуть столбец id, который по определению отличается. Такого рода работы (@maxcount
- количество нужных нам строк, intid
- уникальный столбец int id):
select top (@maxcount) max(intid)
from Documents d
group by d.geoLng, d.geoLat
К сожалению, он всегда будет возвращать одну и ту же строку для данной координаты, что немного стыдно за мое использование. Если бы у нас был агрегат rand()
, который мы могли бы использовать вместо max()
... Обратите внимание, что вы не можете использовать max()
с направляющими, созданными newid()
.
Есть идеи?
(здесь есть еще кое-что, если вам интересно: http://www.itu.dk/~friism/blog/?p=121)
ОБНОВЛЕНИЕ: полное решение здесь