|
<< İç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:
| İmza | Sonuç |
|---|---|
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> FOLLOWINGTek 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ıç.
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.