YardalGedal
@YardalGedal
yeah boy

Как организовать такой двойной запрос?

Мне нужно сделать двойную выборку -- сначала из таблицы выбрать все значения где side="bright", а потом в полученных результатах найти несколько ближайших значений к моему заданному (например 100). Я понимаю что во втором должно быть что-то типа ABS(100 - results) и нужно использовать двойной запрос, но не понимаю как это реализовать совсем.
  • Вопрос задан
  • 197 просмотров
Решения вопроса 1
AlexKeller
@AlexKeller
Что-нибудь типа?
SELECT *, ABS(100 - results) AS diff
FROM t
WHERE side = 'bright'
ORDER BY diff ASC
LIMIT 5
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Мне кажется, что Вам требуется что-то вроде
SELECT * 
  FROM (
    SELECT TOP 10 ABS(100 - result) as diff
    FROM t
    WHERE side = 'bright') b
  WHERE diff < 20


Где 100 - это Ваше заданное значение, а 20 - погрешность, то есть "ближайшие значения", которые различаются не более чем на 20
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы