У меня есть столбец date
, который я пытаюсь запросить, чтобы вернуть только самую большую дату в месяц.
То, что у меня есть, хотя и очень просто, возвращает 99% того, что я ищу.Например, если я перечислю столбец в порядке возрастания, первая запись будет 2016-10-17
и будет иметь размер до 2017-10-06
.
. Следует отметить, что последний день каждого месяца может отсутствовать вданные, так что я просто пытаюсь отобрать любую «самую большую» дату за любой существующий месяц.
Запрос, который я выполняю в данный момент, выглядит как
SELECT MAX(date_col)
FROM schema_name.table_name
WHERE <condition1>
AND <condition2>
GROUP BY EXTRACT (MONTH FROM date_col)
ORDER BY max;
Это действительно возвращает большую часть того, что я ищу - на самом деле я получаю
"2016-11-30"
"2016-12-30"
"2017-01-31"
"2017-02-28"
"2017-03-31"
"2017-04-28"
"2017-05-31"
"2017-06-30"
"2017-07-31"
"2017-08-31"
"2017-09-29"
"2017-10-06"
, которые действительно являются максимальными значениями, присутствующими за каждый месяц в столбце.Однако набор результатов, по-видимому, не включает максимальное значение даты с октября 2016 года (данные за первые месяцы в столбце).В столбце для этого месяца есть несколько значений, начиная с 2016-10-31
.
Если кто-то может указать, почему максимальное значение за этот месяц не возвращается, я был бы очень признателен.