5.6 Pencere (window) fonksiyonları

<< İçindekileri Görüntülemek İçin Tıklayın >>

Yer:  Teknik Kılavuzlar > IVEDI SQL Kullanıcı Kılavuzu > 5. Operatörler ve yerleşik fonksiyonlar >

5.6 Pencere (window) fonksiyonları

Kümeleme fonksiyonlarının tamamı OVER (…) ile pencere olarak kullanılabilir. Ek olarak yalnızca pencerede anlamlı olan aile; OVER olmadan çağrılırsa hata verir:

İmzaSonuç
ROW_NUMBER()bigint
RANK(), DENSE_RANK()bigint
PERCENT_RANK(), CUME_DIST()double
NTILE(kova)bigint
LEAD(v [, ofset] [, varsayılan])v ile aynı; ofset öndeğeri 1
LAG(v [, ofset] [, varsayılan])v ile aynı; ofset öndeğeri 1
NTH_VALUE(v, n)v ile aynı

Pencere yazımı:

OVER ( [PARTITION BY <ifade listesi>]
       [ORDER BY <sıralama listesi>]
       [ {ROWS | RANGE} <çerçeve> ] )

<çerçeve>      ::= <sınır> | BETWEEN <sınır> AND <sınır>
<sınır>        ::= UNBOUNDED PRECEDING | UNBOUNDED FOLLOWING | CURRENT ROW
                 | <ofset> PRECEDING | <ofset> FOLLOWING

Tek sınır yazılırsa BETWEEN <sınır> AND CURRENT ROW olarak genişletilir. Ofset tam sayı tipinde olmalıdır. Anlamsız sınırlar adlarıyla reddedilir: başlangıçta UNBOUNDED FOLLOWING, bitişte UNBOUNDED PRECEDING ve bitişinden sonra gelen bir başlangıç.

Sınır

GROUPS çerçeve birimi ve EXCLUDE yan tümcesi yoktur; anahtar sözcük olarak tanınmadıkları için sıradan sözdizimi hatası verirler. Bir pencere çağrısında DISTINCT ya da kümeleme içi ORDER BY ile OVER birlikte kullanılamaz.