如何在SQL中使用MIN和MAX函数避免0值?

时间:2018-12-03 05:43:49

标签: oracle oracle10g oracle-sqldeveloper

我有这样的桌子:

Running    Date
  128      1/1/2018
  700      6/11/2018
  900      6/11/2018
  300      6/11/2018

如果日期相同,则选择最小值和最大值,并从“运行”列中获得差异。如果只有一个日期,那么什么也不做,并获得相同的值

查询:

SELECT MAX(RUNNING) - MIN(RUNNING) "RUNNING", DATE
FROM TABLE
GROUP BY DATE;

我得到以下结果:

Running    Date
  0        1/1/2018
  600      6/11/2018

但是我想要带有“ 1/1/2018”日期的“ 128”值,但这给出了0值

如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

包括一个CASE语句。

SELECT
     CASE
          WHEN MAX(running) = MIN(running) THEN MAX(running)
          ELSE MAX(running) - MIN(running)
     END
"RUNNING",
     dt
FROM t
GROUP BY dt;