У нас есть запрос:SQL запросы с расчетным MIN, запрашивающая колонкой возвращают все строки
SELECT ID, MIN(SQRT(POW((100-x),2)) + POW((150-y),2)) AS distance
FROM cabstands
GROUP BY ID
, чтобы узнать идентификатор ближайшей точки к точке 100, 150 в системе координат. Если я не запрашиваю идентификатор и пытаюсь получить только расстояние, запрос возвращает истинное значение. Однако, если я запрашиваю идентификатор (как в предыдущем запросе), он возвращает все точки из-за GROUP BY. Если я не помещаю GROUP BY, это просто не позволяет мне выполнить запрос, указав:
ID недействителен в списке выбора, поскольку он не содержится ни в агрегатной функции, ни в GROUP BY пункт.
Каково решение моей проблемы. Заранее спасибо.
Почему бы не использовать 'ВЫБРАТЬ TOP 1 ... ORDER BY расстояние ASC'? – rcdmk
Пожалуйста, отметьте свой вопрос с помощью СУБД, которую вы используете. Возможно, это MySQL или PostgreSQL? –
Спасибо за ваши ответы, я уверен, что он будет работать таким образом. Я дам вам знать. И я пометил свои СУБД, я запускаю Microsoft SQL Server 2008 с инструментами управления. –