From: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
---|---|
To: | PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | proposal: window function - change_number |
Date: | 2014-09-21 09:27:59 |
Message-ID: | CAFj8pRA_AsBQpeuwXjcd9dKQqRNhhnbY5knmpRJPEUimPewovw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi
I tried to solve following task:
I have a table
start, reason, km
=============
2014-01-01 08:00:00, private, 10
2014-01-01 09:00:00, commerc, 20
2014-01-01 10:00:00, commerc, 20
2014-01-01 11:00:00, private, 8
and I would reduce these rows to
2014-01-01 08:00:00, private, 10
2014-01-01 09:00:00, commerc, 20 + 20 = 40
2014-01-01 11:00:00, private, 8
It is relative hard to it now with SQL only. But we can simplify this task
with window function that returns number of change in some column. Then
this task can be solved by
select min(start), min(reason), sum(km)
from (select start, reason, km, change_number(reason) over (order by
start))
group by change_number;
Do you think, so it has sense?
Regards
Pavel
From | Date | Subject | |
---|---|---|---|
Next Message | David Rowley | 2014-09-21 12:22:09 | Re: proposal: window function - change_number |
Previous Message | Dean Rasheed | 2014-09-21 09:20:31 | Re: WITH CHECK OPTION bug [was RLS Design] |