для приложения, с которым я работаю, я сохраняю позицию (широту и долготу), используемую пользователем для своих поисков. Позже я хочу использовать эти данные в другом запросе, чтобы найти зону (среднее число точек), в которой пользователь выполняет большинство своих запросов. Проблема в том, что у меня может быть некоторый шум в данных из-за того, что пользователь выполняет некоторые спорадиальные c поиски. Я хотел бы отфильтровать этот шум. Вот наглядный пример:
+ + + + +
++ + + +
++
На приведенной выше сетке каждый + является зарегистрированным местоположением. В середине есть спорадиальный c поиск между двумя зонами, которые я хочу захватить (не важно, какая из них мне нужна, просто одна).
Я думал об использовании медианы, но в этом конкретном случае c вполне вероятно, что это вернет шум вместо одной из зон поиска.
Я думаю, что для этой задачи Я мог бы как-то использовать выражение group by вместе с where, но я не уверен как. Вот что у меня есть SQL:
SELECT p.lat, p.long FROM profilation p
WHERE p.userId = ? AND -- what to put here?
GROUP BY -- what to put here?
Я использую MySQL 5.
Спасибо за помощь