Analytical Functions Oracle PLSQL

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>