Oracle SQL находит минимальное значение выше определенного порога - PullRequest
0 голосов
/ 23 февраля 2012

Если бы у Google был быстрый взгляд, можно ли это сделать без особой удачи, но есть ли способ в oracle sql вернуть минимальное значение чего-либо, но выше определенного числа (т.е. минимальное значение выше отрицательных чисел). В настоящее время я использую эту строку кода

 min(ROUND(IA.ASM_START_DATE -REF.ASM_START_DATE,0)) over (partition by  IA.ASM_ID) min_wk

Чтобы вернуть наименьшую разницу, сгруппированную по идентификатору, - это работает до некоторой точки, но я хочу, чтобы она вернула самую низкую разницу выше -10. В идеале я пытаюсь добиться этого с помощью выбора, а не с помощью запроса where, поскольку хочу использовать его для выявления проблем, но не для полного исключения их из отчета.

1 Ответ

2 голосов
/ 23 февраля 2012

Простой взлом состоит в том, чтобы использовать оператор case, чтобы установить любые значения, которые слишком малы, чтобы обнулить, чтобы они не изменили минимум:

min(case when ROUND(IA.ASM_START_DATE -REF.ASM_START_DATE,0)<-10 then null else ROUND(IA.ASM_START_DATE -REF.ASM_START_DATE,0) end) over (partition by  IA.ASM_ID)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...