Сортировка по дистанции и групировка по типу
Есть запрос который выводит ближайшие объекты по широте и долготе
Select id, lat, lon, name, type,
acos(sin(:lat)*sin(radians(lat)) + cos(:lat)*cos(radians(lat))*cos(radians(lon)-:lon)) * :R As D
From (
Select id, lat, lon, name, type
From `TABLE 254`
Where lat Between :minLat And :maxLat
And lon Between :minLon And :maxLon
) As FirstCut
WHERE acos(sin(:lat)*sin(radians(lat)) + cos(:lat)*cos(radians(lat))*cos(radians(lon)-:lon)) * :R < :rad
Group by `type`
Order by `D`
Получаем следующее
name type
Остановка bus_stop 31.472 км
Баканская station 44.109 км
17 км halt 47.006 км
Проблема в том, что полученные записи не являются самыми ближайшими, так как Group by группирует по своему
Без Group by type и Order by D
Баканская station 44.109 км
Киевский station 49.927 км
Анапа station 6.831 км
17 км halt 47.006 км
805 км halt 38.751 км
Убых halt 28.439 км
Остановка bus_stop 31.472 км
Алексино bus_stop 45.838 км
Центр bus_stop 22.668 км
Без Group by type
Анапа station 6.831 км
Центр bus_stop 22.668 км
Убых halt 28.439 км
Остановка bus_stop 31.472 км
805 км halt 38.751 км
Баканская station 44.109 км
Алексино bus_stop 45.838 км
17 км halt 47.006 км
Киевский station 49.927 км
а нужно так
Анапа station 6.831 км
Центр bus_stop 22.668 км
Убых halt 28.439 км
Подскажите, что изменить в запросе, чтобы с начало происходила сортировка по D (Дистанции), а потом группировка по type