#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