/*-->> Problem Statement:
Suppose you have a car travelling certain distance and the data is presented as follows -
Day 1 - 50 km
Day 2 - 100 km
Day 3 - 200 km
Now the distance is a cumulative sum as in
row2 = (kms travelled on that day + row1 kms).
How should I get the table in the form of kms travelled by the car on a given day and not the sum of the total distance?*/
create table car_travels
(
cars varchar(40),
days varchar(10),
cumulative_distance int
);
insert into car_travels values ('Car1', 'Day1', 50);
insert into car_travels values ('Car1', 'Day2', 100);
insert into car_travels values ('Car1', 'Day3', 200);
insert into car_travels values ('Car2', 'Day1', 0);
insert into car_travels values ('Car3', 'Day1', 0);
insert into car_travels values ('Car3', 'Day2', 50);
insert into car_travels values ('Car3', 'Day3', 50);
insert into car_travels values ('Car3', 'Day4', 100);
/*select * from car_travels;*/
select cars, days,(cumulative_distance-
lag(cumulative_distance, 1, 0) over(partition by cars order by days))
from car_travels
To embed this project on your website, copy the following code and paste it into your website's HTML: