Windows Function PPT
Windows Function PPT
Row functions
Quarter Store Sales Sales*0.2 Aggregate functions
1 A 40 8 Store Total
2 A 60 12 A 180
3 A 80 16 B 160
2 B 100 20
1 B 60 12
Introduction
Quarter Store Sales Total
Windows functions 1 A 40 180
2 A 60 180
3 A 80 180
2 B 100 160
1 B 60 160
Start-Tech Academy
Windows Functions
1. Window functions provide the ability to perform calculations across
sets of rows that are related to the current query row
2. Window Functions compute their result based on a sliding window
frame, a set of rows that are somehow related to the current row.
Introduction
Start-Tech Academy
Windows Functions
1. Use of a window function does not cause rows to become grouped
into a single output row — the rows retain their separate identities.
2. Behind the scenes, the window function can access more than just
the current row of the query result.
How it is
different
Start-Tech Academy
Windows Functions
SELECT <column_1>, <column_2>, SELECT Cust, Store, Orders,
<window_function>() OVER ( row_number() OVER (
PARTITION BY <...> PARTITION BY Store
ORDER BY <...> ORDER BY orders desc) as row
FROM <table_name>; FROM <table_name>;
Start-Tech Academy
Windows Functions
Customer State Orders Cust State Orders Row
C-1 A 3 C-5 A 6 1
C-2 B 5 C-1 A 3 2
C-3 B 4 C-7 A 2 3
C-4 B 2 C-2 B 5 1
C-5 A 6 C-3 B 4 2
Row Number C-6 B 4 C-6 B 4 3
C-7 A 2 C-4 B 2 4
Unique number for each row within partition, with different numbers for tied values
SELECT Cust, Store, Orders,
row_number() OVER (
PARTITION BY Store
ORDER BY orders desc) as row
FROM <table_name>;
Start-Tech Academy
Windows Functions
Example
Start-Tech Academy
Windows Functions
Start-Tech Academy
Windows Functions
Customer
Sales
Combined
Start-Tech Academy
Windows Functions
Customer Store Orders Cust Store Orders Row
C-1 A 3 C-5 A 6 1
C-2 B 5 C-7 A 3 2
C-3 B 4 C-1 A 2 3
C-4 B 2 C-2 B 5 1
C-5 A 6 C-3 B 4 2
Rank C-6 B 4 C-6 B 4 2
C-7 A 2 C-4 B 2 4
Ranking within partition, with gaps and same ranking for tied values
SELECT Cust, Store, Orders,
rank() OVER (
PARTITION BY Store
ORDER BY Orders desc) as row
FROM <table_name>;
Start-Tech Academy
Windows Functions
Customer Orders Orders Cust Store Orders Row
C-1 A 3 C-5 A 6 1
C-2 B 5 C-7 A 3 2
C-3 B 4 C-1 A 2 3
C-4 B 2 C-2 B 5 1
C-5 A 6 C-3 B 4 2
Dense Rank C-6 B 4 C-6 B 4 2
C-7 A 2 C-4 B 2 3
Ranking within partition, with gaps and same ranking for tied values
SELECT Cust, Store, Orders,
dense_rank() OVER (
PARTITION BY Store
ORDER BY Orders desc) as row
FROM <table_name>;
Start-Tech Academy
Windows Functions
Customer Store Orders Cust Store Orders group
C-1 A 3 C-5 A 6 1
C-2 B 5 C-7 A 3 1
C-3 B 4 C-1 A 2 2
C-4 B 2 C-2 B 5 1
C-5 A 6 C-3 B 4 1
Ntile C-6 B 4 C-6 B 4 2
C-7 A 2 C-4 B 2 2
divide rows within a partition as equally as possible into n groups, and assign each
row its group number
SELECT Cust, Store, Orders,
ntile(2) OVER (PARTITION BY Store
ORDER BY Orders desc) as group
FROM <table_name>;
Start-Tech Academy
Windows Functions - Aggregate
Customer Store Revenue Cust Store Revenue Avg_r
C-1 A 100 C-1 A 100 200
C-2 B 300 C-5 A 200 200
C-3 B 300 C-7 A 300 200
C-4 B 200 C-2 B 300 300
C-5 A 200 C-3 B 300 300
Average C-6 B 400 C-4 B 200 300
C-7 A 300 C-6 B 400 300
Start-Tech Academy
Windows Functions - Aggregate
Customer Store Cust Store N_Cust
C-1 A C-1 A 3
C-2 B C-5 A 3
C-3 B C-7 A 3
C-4 B C-2 B 4
C-5 A C-3 B 4
Count C-6 B C-4 B 4
C-7 A C-6 B 4
Start-Tech Academy
Windows Functions - Aggregate
Cust Date Revenue Cust Date Revenue Total
C-1 01-01-22 100 C-1 01-01-22 100 600
C-2 30-03-22 300 C-1 11-05-22 200 600
C-2 21-04-22 300 C-1 25-08-22 300 600
C-2 10-05-22 200 C-2 30-03-22 300 1200
C-1 11-05-22 200 C-2 21-04-22 300 1200
Total C-2 12-06-22 400 C-2 10-05-22 200 1200
C-1 25-08-22 300 C-2 12-06-22 400 1200
Start-Tech Academy
Windows Functions - Aggregate
Cust Date Revenue Cust Date Revenue Total
C-1 01-01-22 100 C-1 01-01-22 100 100
C-2 30-03-22 300 C-1 11-05-22 200 300
C-2 21-04-22 300 C-1 25-08-22 300 600
C-2 10-05-22 200 C-2 30-03-22 300 300
C-1 11-05-22 200 C-2 21-04-22 300 600
Running Total C-2 12-06-22 400 C-2 10-05-22 200 800
C-1 25-08-22 300 C-2 12-06-22 400 1200
Start-Tech Academy
Windows Functions - Aggregate
Cust Date Revenue Cust Date Revenue Last_r
C-1 01-01-22 100 C-1 01-01-22 100
C-2 30-03-22 300 C-1 11-05-22 200 100
C-2 21-04-22 300 C-1 25-08-22 300 200
C-2 10-05-22 200 C-2 30-03-22 300
C-1 11-05-22 200 C-2 21-04-22 300 300
Lag/Lead C-2 12-06-22 400 C-2 10-05-22 200 300
C-1 25-08-22 300 C-2 12-06-22 400 200
Start-Tech Academy
COALESCE
S.No. First Middle Last S.No. First Middle Last Name_Col
1 Paul Van Hugh 1 Paul Van Hugh Paul
2 David Flashing 2 David Flashing David
3 Lena Radford 3 Lena Radford Lena
4 Henry Goldwyn 4 Henry Goldwyn Henry
COALESCE is a function that returns the first non- NULL value in a list of values.
Start-Tech Academy
COALESCE
Start-Tech Academy