Re: Fw: Clipping values

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Ovid <curtis_ovid_poe(at)yahoo(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Fw: Clipping values
Date: 2010-03-24 16:40:28
Message-ID: 23671.1269448828@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Ovid <curtis_ovid_poe(at)yahoo(dot)com> writes:
> I have a table with four values which are constantly lowered by user action. These four values must rise over time, in five minute intervals. The core of the function, in pseudo-code, would look something like this:

> FOREACH row IN SELECT * FROM some_table WHERE some_percentages are less than 1
> LOOP
> new_percentage = num_intervals * .1 > 1
> ? 1
> : num_intervals * .1;
> UPDATE some_table SET some_percentages = new_percentage WHERE id = row.id
> END LOOP

> But, of course, doing that for four percentages (with at least one having a different increment value than .1)

You could code that directly with CASE operations, but it would probably
be easier to use GREATEST/LEAST, along the lines of
new_percentage = LEAST(num_intervals * .1, 1);

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tony Webb 2010-03-24 17:13:31 Re: Revoking CREATE TABLE
Previous Message Tom Lane 2010-03-24 16:37:28 Re: Revoking CREATE TABLE