| From: | Rory Campbell-Lange <rory(at)campbell-lange(dot)net> |
|---|---|
| To: | Durumdara <durumdara(at)gmail(dot)com> |
| Cc: | pgsql-general(at)postgresql(dot)org |
| Subject: | Re: Searching for big differences between values |
| Date: | 2017-11-30 11:36:22 |
| Message-ID: | 20171130113622.5vuts6vkz25dztwz@campbell-lange.net |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
On 30/11/17, Durumdara (durumdara(at)gmail(dot)com) wrote:
> Somewhere the users made mistakes on prices (stock).
>
> I need to search for big differences between values.
> For example:
>
> 20
> 21
> 21,5
> 30
> 28
> ..
> 46392 <-
> 46392 <-
You could use window functions
https://www.postgresql.org/docs/current/static/functions-window.html
Eg
costings=> create table vals (num integer);
costings=> insert into vals values (20), (21), (30), (28), (46392);
costings=> select num, num - lag(num, 1, num) over () as diff from vals
order by num;
num | diff
-------+-------
20 | 0
21 | 1
28 | -2
30 | 9
46392 | 46364
(5 rows)
Although you might want to use averaging or percentages to throw up
errors instead.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Mike Sofen | 2017-11-30 13:02:46 | RE: copy error with json/jsonb types |
| Previous Message | Chris Mair | 2017-11-30 11:00:41 | Re: Searching for big differences between values |