SQL Вычтите две строки друг от друга в одном столбце, чтобы получить результат - PullRequest
1 голос
/ 22 апреля 2020

У меня много читателей энергии, которые собирают данные с интервалами в 5 минут. Чтобы использовать мощность между двумя метками времени, мне нужно вычесть более старые данные из более новых.

Я новичок в SQl, поэтому я хотел бы спросить, какой синтаксис SQL мне нужно использовать, чтобы получить общую сумму между двумя значениями.

Пример структуры базы данных:

Data Table example

Большое спасибо.

1 Ответ

2 голосов
/ 22 апреля 2020

Обычно вы используете оконную функцию lead() или lag() - если ваша база данных поддерживает это.

Следующий запрос помещает в каждую строку разницу с предыдущим значением того же оборудования:

select
    t.*,
    t_energy_a - lag(t_energy_a) over(partition by meter_id order by dod) diff
from mytable t
...