有一个快速的谷歌,看看这是否可以没有太多的运气,但是在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查询,因为我想用它来识别问题,但不能完全从报告中排除它们。
答案 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)