proposal: window function - change_number

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

Responses

Browse pgsql-hackers by date

  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]