Time Series Analysis in SQL Server
Maham Faisal Khan
Senior Data Science Content Developer
ROW_NUMBER()
Unique, ascending integer value starting from 1.
RANK()
Ascending integer value starting from 1. Can have ties. Can skip numbers.
DENSE_RANK()
Ascending integer value starting from 1. Can have ties. Will not skip numbers.
RunsScored |
---|
8 |
7 |
7 |
6 |
6 |
3 |
SELECT
s.RunsScored,
ROW_NUMBER() OVER (
ORDER BY s.RunsScored DESC
) AS rn
FROM dbo.Scores s
ORDER BY
s.RunsScored DESC;
RunsScored | rn |
---|---|
8 | 1 |
7 | 2 |
7 | 3 |
6 | 4 |
6 | 5 |
3 | 6 |
SELECT
s.RunsScored,
RANK() OVER (
ORDER BY s.RunsScored DESC
) AS rk,
DENSE_RANK() OVER (
ORDER BY s.RunsScored DESC
) AS dr
FROM dbo.Scores s
ORDER BY
s.RunsScored DESC;
RunsScored | rk | dr |
---|---|---|
8 | 1 | 1 |
7 | 2 | 2 |
7 | 2 | 2 |
6 | 4 | 3 |
6 | 4 | 3 |
3 | 6 | 4 |
SELECT
s.Team,
s.RunsScored,
ROW_NUMBER() OVER (
PARTITION BY s.Team
ORDER BY s.RunsScored DESC
) AS rn
FROM dbo.Scores s
ORDER BY
s.RunsScored DESC;
Team | RunsScored | rn |
---|---|---|
AZ | 8 | 1 |
AZ | 6 | 2 |
AZ | 3 | 3 |
FLA | 7 | 1 |
FLA | 7 | 2 |
FLA | 6 | 3 |
SELECT
s.Team,
s.RunsScored,
MAX(s.RunsScored) OVER (
PARTITION BY s.Team
) AS MaxRuns
FROM dbo.Scores s
ORDER BY
s.RunsScored DESC;
Team | RunsScored | MaxRuns |
---|---|---|
AZ | 8 | 8 |
AZ | 6 | 8 |
AZ | 3 | 8 |
FLA | 7 | 7 |
FLA | 7 | 7 |
FLA | 6 | 7 |
SELECT
s.Team,
s.RunsScored,
MAX(s.RunsScored) OVER() AS MaxRuns
FROM dbo.Scores s
ORDER BY
s.RunsScored DESC;
Team | RunsScored | MaxRuns |
---|---|---|
AZ | 8 | 8 |
AZ | 6 | 8 |
AZ | 3 | 8 |
FLA | 7 | 8 |
FLA | 7 | 8 |
FLA | 6 | 8 |
Time Series Analysis in SQL Server