|
|||||||||||
|
Re: [GENERAL] Oracle Analytical Functions
From: Willem Buitendyk <willem(at)pcfish.ca>
Date: Thu Jan 31 2008 - 15:48:06 EST
create table arb_test (
insert into arb_test values (2,1); insert into arb_test values (2,33); insert into arb_test values (2,6); insert into arb_test values (2,76); insert into arb_test values (2,111); insert into arb_test values (2,10); insert into arb_test values (2,55); insert into arb_test values (7,12); insert into arb_test values (7,6); insert into arb_test values (7,144); insert into arb_test values (7,63); insert into arb_test values (7,87); insert into arb_test values (7,24); insert into arb_test values (7,22); insert into arb_test values (1,14); insert into arb_test values (1,23); insert into arb_test values (1,67); insert into arb_test values (1,90); insert into arb_test values (1,2); insert into arb_test values (1,5); insert into arb_test values (5,8); insert into arb_test values (5,42); insert into arb_test values (5,77); insert into arb_test values (5,9); insert into arb_test values (5,89); insert into arb_test values (5,23); insert into arb_test values (5,11);
DROP SEQUENCE if exists seq1;
select a.client_id, b.arbnum, a.arbnum as previousarbnum, (b.arbnum -
a.arbnum) as diffarbnum from
--create or replace view arb_view as select * from arb_test order by client_id, arbnum; Here are the results: client_id | arbnum | previousarbnum | diffarbnum
-----------+--------+----------------+------------
1 | 23 | 14 | 9
1 | 67 | 23 | 44
1 | 90 | 67 | 23
1 | 2 | 90 | -88
1 | 5 | 2 | 3
2 | 33 | 1 | 32
2 | 6 | 33 | -27
2 | 76 | 6 | 70
2 | 111 | 76 | 35
2 | 10 | 111 | -101
2 | 55 | 10 | 45
5 | 42 | 8 | 34
5 | 77 | 42 | 35
5 | 9 | 77 | -68
5 | 89 | 9 | 80
5 | 23 | 89 | -66
5 | 11 | 23 | -12
7 | 6 | 12 | -6
7 | 144 | 6 | 138
7 | 63 | 144 | -81
7 | 87 | 63 | 24
7 | 24 | 87 | -63
When I used a sorted view: create or replace view arb_view as select * from arb_test order by client_id, arbnum; and redid it the results are: client_id | arbnum | previousarbnum | diffarbnum
-----------+--------+----------------+------------
1 | 5 | 2 | 3
1 | 14 | 5 | 9
1 | 23 | 14 | 9
1 | 67 | 23 | 44
1 | 90 | 67 | 23
2 | 6 | 1 | 5
2 | 10 | 6 | 4
2 | 33 | 10 | 23
2 | 55 | 33 | 22
2 | 76 | 55 | 21
2 | 111 | 76 | 35
5 | 9 | 8 | 1
5 | 11 | 9 | 2
5 | 23 | 11 | 12
5 | 42 | 23 | 19
5 | 77 | 42 | 35
5 | 89 | 77 | 12
7 | 12 | 6 | 6
7 | 22 | 12 | 10
7 | 24 | 22 | 2
7 | 63 | 24 | 39
7 | 87 | 63 | 24
7 | 144 | 87 | 57
(23 rows)
This works the way it should.
--drop table arb_test;
willem
---------------------------(end of broadcast)---------------------------TIP 2: Don't 'kill -9' the postmaster Received on Thu Jan 31 21:01:55 2008 This archive was generated by hypermail 2.1.8 : Tue Jun 17 2008 - 02:04:48 EDT |
||||||||||
|
|||||||||||