Model Make Price
--------------------------------------
Ford 42 23454
Ford 32 21422
Ford 12 19000
GM 12 14343
GM 32 21345
GM 14 12343
BMW 32 43355
Это примерная таблица (упрощенная). То, что я пытаюсь сделать, это найти цену, ближайшую к входу для каждой модели. Затем верните Model, Make и Price, которые наиболее близки.SQL Query, MIN не возвращает только самое низкое значение
Например, за 20 000 долларов США. Результаты будут:
Model Make Price
----------------------
1) Ford 12 19000 ($1000 difference)
2) GM 32 21345 ($1234 difference)
3) BMW 32 43355 ($23355 difference)
Это мой текущий SQL (с помощью Postgres):
SELECT model, make, price, difference
FROM (
SELECT model, price, MIN(ABS(20000 - price)) as difference
FROM table
GROUP BY model, price)
INNER JOIN ON model, price;
Внутренний не возвращает только минимальную разницу, но все. Не знаете, как это исправить.
Спасибо.
это, безусловно, круто вопрос – Drew