Как получить ежедневные итоги за прошлую неделю с помощью PostgresSQL?

#postgresql

Вопрос:

У меня есть следующие данные:

 SELECT * 
FROM metrics 
WHERE tag = 'KEB1.DB_BP.01.STATUS.BankTotalEnergyImported'
ORDER BY time desc
 

введите описание изображения здесь

Это всего лишь часть всех данных, зарегистрированных за последние 2 месяца.

То, что я пытаюсь создать, — это запрос, который возвращает мне результат общей суммы столбца значений (СУММА) за день только за последнюю неделю. Например:

  2021-07-08 - KEB1.DB_BP.01.STATUS.BankTotalEnergyImported - 1234 - 5678 - 2791 (SUM of all the data from this day)
 2021-07-07 - KEB1.DB_BP.01.STATUS.BankTotalEnergyImported - 1234 - 5678 - 1652 (SUM of all the data from this day)
 2021-07-06 - KEB1.DB_BP.01.STATUS.BankTotalEnergyImported - 1234 - 5678 - 711 (SUM of all the data from this day)
 2021-07-05 - KEB1.DB_BP.01.STATUS.BankTotalEnergyImported - 1234 - 5678 - 399 (SUM of all the data from this day)
 2021-07-04 - KEB1.DB_BP.01.STATUS.BankTotalEnergyImported - 1234 - 5678 - 4219 (SUM of all the data from this day)
 2021-07-03 - KEB1.DB_BP.01.STATUS.BankTotalEnergyImported - 1234 - 5678 - 6591 (SUM of all the data from this day)
 2021-07-02 - KEB1.DB_BP.01.STATUS.BankTotalEnergyImported - 1234 - 5678 - 1848 (SUM of all the data from this day)
 

Как я могу этого достичь?

Комментарии:

1. Пожалуйста, правильно отметьте свой вопрос. Это mysql или postgresql?

2. Никогда, никогда , никогда не публикуйте изображения таблиц. Опубликуйте утверждения CREATE и INSERT в виде текста .


Ответ №1:

Я думаю, что это в основном агрегация с фильтрацией:

 SELECT time::date, container, project, SUM(value)
FROM metrics
WHERE tag = 'KEB1.DB_BP.01.STATUS.BankTotalEnergyImported' AND
      time >= CURRENT_DATE - INTERVAL '6 day'
GROUP BY time::date
ORDER BY time::date desc