Oracle SQL查找超过特定阈值的最小值

时间:2012-02-23 16:55:10

标签: sql oracle

有一个快速的谷歌,看看这是否可以没有太多的运气,但是在oracle sql中是否有任何方法可以返回某些数字的最小值但是超过一定数量(即负数以上的最小值)。目前我正在使用这行代码

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

要返回按ID分组的最低差异 - 它正在工作到一个点,但我希望它带回-10以上的最低差异。理想情况下,我试图在select中实现这一点,而不是使用where查询,因​​为我想用它来识别问题,但不能完全从报告中排除它们。

1 个答案:

答案 0 :(得分:2)

一个简单的hack就是使用case语句来设置任何太低而不能为null的值,这样它们就不会改变最小值:

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)