запрос:
select sum(count)-(
select count from cfd_data
where status='Done' and to_date(day, 'YYYY-MM-DD') = date_trunc('day', now())) as wip
from cfd_data
where to_date(day, 'YYYY-MM-DD') = date_trunc('day', now()) group by day;
в итоге я получу одну цифру подсчетов за один день. Как мне выполнить этот запрос для нескольких дат и слепить это все в единый ответ?
Слишком расплывчатое описание, IMHO — показали бы реальный запрос, или полную формулировку задачи.
это и есть реальный запрос, сейчас он делает вычисления за сегодняшнюю дату, там где now() указано. А мне нужно сделать такие же запросы за сегодня и еще за предыдущие 100 дней и получить единым ответом
Нихрена себе, он и правда можэт работать! SELECT date_trunc('day', day) AS dt, sum(count) FROM cfd_data WHERE status IS DISTINCT FROM 'Done' AND day > now() - 100*'1 day'::interval GROUP BY 1 Но вы бы потренировались на чём-нибудь простом, например postgrgesqltutorial.com А то очень простая задача, но вы её переусложнили из-за отсутствия опыта.
Обалдеть, магия, спасибо, подскажите, за счет чего AND day > now() - 100*'1 day'::interval все дни прокручивает, как это называется этот механизм?
обычный where ))))
как умножение интервала на 100 делает сравнение за каждый день, я про эту часть
что значит "сравнения за каждый день"?
Это происходит в Group BY И происходит группировка по каждому дню
https://postgrespro.ru/docs/postgresql/15/functions-datetime
вот в него, видимо, копнуть надо, спасибо
просили запрос показать
Всё равно не понял, но, кажэтся это ужэ неактуально и вам рассказали остальное.
да, все подсказали, спасибо
Обсуждают сегодня