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
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 |