ПочатиПочніть безкоштовно

Досліджуємо віконні рамки

Окрім клауз 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

Переглянути курс

Практична інтерактивна вправа

Перетворіть теорію на практику за допомогою однієї з наших інтерактивних вправ

Почати вправу