Досліджуємо віконні рамки
Окрім клауз PARTITION BY та ORDER BY, віконні функції можуть містити рамки (frames), які визначають, що саме входить до вікна як релевантні дані.
Тут ми розглянемо чотири різні рамки, щоб зрозуміти, як відрізнятимуться результати. Для кожного прикладу потрібно заповнити віконну рамку в такому запиті:
SELECT
ir.IncidentDate,
ir.IncidentTypeID,
SUM(ir.NumberOfIncidents) OVER (
PARTITION BY ir.IncidentTypeID
ORDER BY ir.IncidentDate
<< WINDOW FRAME >>
) AS NumberOfIncidents
FROM dbo.IncidentRollup ir;
Ми вкажемо ROWS або RANGE залежно від того, чи хочемо включати окремі рядки, чи діапазон значень. Також вкажемо частину "preceding", яка задає, скільки рядків (або який діапазон значень) потрібні нам ДО поточного рядка. І вкажемо частину "following", яка визначає, що саме беремо ВІД поточного рядка й далі.
Ця вправа є частиною курсу
Аналіз часових рядів у SQL Server
Практична інтерактивна вправа
Перетворіть теорію на практику за допомогою однієї з наших інтерактивних вправ
Почати вправу