Mega Code Archive

 
Categories / Oracle PLSQL / Analytical Functions
 

Use the COUNT aggregate analytical function to show how many rows are included in each window

SQL> create table TestTable (   2    x    number primary key,   3    y   number   4  ); Table created. SQL> insert into TestTable values (1, 7 ); 1 row created. SQL> insert into TestTable values (2, 1 ); 1 row created. SQL> insert into TestTable values (3, 2 ); 1 row created. SQL> insert into TestTable values (4, 5 ); 1 row created. SQL> insert into TestTable values (5, 7 ); 1 row created. SQL> insert into TestTable values (6, 34 ); 1 row created. SQL> insert into TestTable values (7, 32 ); 1 row created. SQL> insert into TestTable values (8, 43 ); 1 row created. SQL> insert into TestTable values (9, 87 ); 1 row created. SQL> insert into TestTable values (10, 32 ); 1 row created. SQL> insert into TestTable values (11, 12 ); 1 row created. SQL> insert into TestTable values (12, 16 ); 1 row created. SQL> insert into TestTable values (13, 63 ); 1 row created. SQL> insert into TestTable values (14, 74 ); 1 row created. SQL> insert into TestTable values (15, 36 ); 1 row created. SQL> insert into TestTable values (16, 56 ); 1 row created. SQL> insert into TestTable values (17, 2 ); 1 row created. SQL> SQL> select * from TestTable;          X          Y ---------- ----------          1          7          2          1          3          2          4          5          5          7          6         34          7         32          8         43          9         87         10         32         11         12         12         16         13         63         14         74         15         36         16         56         17          2 17 rows selected. SQL> SQL> -- Use the COUNT aggregate analytical function to show how many rows are included in each window: SQL> SQL> SELECT x, y,   2    COUNT(y) OVER(ORDER BY x   3    ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) Howmanyrows   4  FROM TestTable   5  ORDER BY x;          X          Y HOWMANYROWS ---------- ---------- -----------          1          7           2          2          1           3          3          2           3          4          5           3          5          7           3          6         34           3          7         32           3          8         43           3          9         87           3         10         32           3         11         12           3         12         16           3         13         63           3         14         74           3         15         36           3         16         56           3         17          2           2 17 rows selected. SQL> SQL> SQL> drop table TestTable; Table dropped. SQL> SQL>