Как избежать 0 значений, используя функции MIN и MAX в SQL? - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть такая таблица:

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

Если совпадают даты, выберите минимальное и максимальное значения и получите разницу из столбца «RUNNING».Если только одна дата, то ничего не делать и получить то же значение

Запрос:

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

Я получил следующие результаты:

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

Но я хочу значение "128" сДата «1/1/2018», но это дает значение 0

Как решить эту проблему?

1 Ответ

0 голосов
/ 03 декабря 2018

Включить оператор CASE.

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