SQLite: выборка минимальной/максимальной даты


Задача:

Есть столбец с датами, некоторые из которых = NULL
Нужно выбрать MIN/MAX дату, но если в столбце есть NULL - то вернуть NULL

Решение:

Выбрать максимум/минимум в столбце - легко с помощью обычной агрегатной функции, типа

SELECT MIN(start_date) FROM periods

Однако в этом случае в выборку не попадают значения NULL.

Чтобы вернуть NULL - необходимо провести несложный анализ:

SELECT CASE
  WHEN COUNT(*) = COUNT(start_date) THEN MIN(start_date) 
END FROM periods

И всё!

#