2016-12-16 3 views
2

Моя MySQL таблица содержит следующую информацию,MySQL - выбор уникальных значений из таблицы

ID User   City   HomeLatitude  HomeLongitude 
1 Egon Spengler New York  19.123456   23.43546 
2 Mac Taylor  New York  19.12343588  23.43546 
3 Sarah Connor New York  19.128376   34.35354 
4 Jean-Luc Picard La Barre  11.345455   12.4356546 
5 Ellen Ripley Nostromo  32.76865   78.345435 

Из этой таблицы мне нужно запросить уникальные HomeLatitude значения с двумя первыми десятичной точки, так как первые 3 место почти то же самое, так что мне нужно только первую строка из трех рядов ..

Я использовал ниже данный запрос,

SELECT DISTINCT HomeLatitude, City FROM user; 

Но это вернет все строки из таблицы. Может ли кто-нибудь помочь мне в этом.

+0

Возможный дубликат [Номер формата до 2 знаков после запятой] (http://stackoverflow.com/questions/11190668/format-number-to-2-decimal-places) – Gunaseelan

ответ

6

ROUND Функция даст вам количество знаков после запятой, которые вы хотите показать.

+0

Но после округления значений HomeLatitude мне нужны только уникальные строки. – Anna

+0

, если работать с геопространственными данными было так просто :( – e4c5

+0

Его работа. Спасибо Gunaseelan .. – Anna

2

Что-то вроде:

SELECT (DISTINCT ROUND(HomeLatitude, 1)) AS HomeLatitude, City FROM user; 
+0

Я проверил это, он будет округлять значение HomeLatitude до 2 десятичной точки, но возвращаемые строки не уникальны. – Anna

+0

Я изменил открывающую скобку. В противном случае вам нужен DISTINCT/ROUND в качестве внутреннего запроса. – Pieter21

+0

Извините, у него есть синтаксическая ошибка. Я думаю, что это невозможно сделать в скобках. – Anna

2

При использовании решения, основанного на округлении широты или долготы, вы можете получить результаты, а также подготовиться к неожиданным результатам. Также возможно, чтобы в двух местах была одна и та же широта, но разные долготы и наоборот.

Если вы делаете какие-либо пространственный анализ, вы должны инвестировать в mysql spatial extensions и функции как ST_WITHIN

Второй лучший вариант использовать формулу гаверсинуса или аналогичный, чтобы найти места, которые близки друг к другу.

 Смежные вопросы

  • Нет связанных вопросов^_^