У меня есть таблица с метаданными по измерению поля, в которой поля «startDate» имеют тип datetime. Значение может быть пустым, если информация недоступна. Я хотел бы запустить некоторую статистику по этому полю и получить минимальное и максимальное значение (т.е. самые старые измерения, доступные по всем записям). Нет проблем для Max, но для Min агрегация возвращает None (значение в пустых полях).
Итак, моя идея состоит в том, чтобы отфильтровать эти записи из набора запросов перед запуском агрегата. Я не могу найти, как это сделать.
я пытался
oldestdate = Measurement.object.filter(startDate__isNull=True).aggregate(Min('startDate'))['startDate__min']
Любая идея, что не так, или как это сделать?
РЕДАКТИРОВАТЬ: еще несколько тестов показывают, что:
Measurement.objects.filter(startDate_isnull=True) -> only records with startDate = None
Measurement.objects.filter(startDate_isnull=False) -> all records, also the ones with startDate = None.
Measurement.objects.exclude(startDate__isnull=False) -> only records with startDate = None
Measurement.objects.exclude(startDate__isnull=True) -> shows all records (also startDate == None)