# Window Komut dosyası fonksiyonu

Window(), tam bir tablonun bir bölümünün (veya "penceresinin") birden fazla satırından hesaplamalar yapar ve her satır için tek bir değer üretir.

Aşağıdakiler gibi işlemleri yapmak için Window fonksiyonlarını kullanabilirsiniz:

* Bir satırdaki tek bir sayı değerini tablonun bir penceresindeki ortalama, maksimum veya minimum değerle karşılaştırma.

* Pencere içinde veya tüm tablo içinde tek bir değerin sıralamasını hesaplama.

Window fonksiyonu tablodaki kayıt sayısını değiştirmez ancak yine de toplama, ilişkisel ve aralık işlevleriyle benzer görevleri yerine getirebilir.

Window işlevi, üzerinde çalıştığınız tablonun LOAD deyimine dahil edilmeli veya bir Yerleşik LOAD gibi tabloya referans vermelidir. Örneğin, bkz. [Örnek - Toplama içeren bir alan ekleme](https://help.qlik.com/tr-TR/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/Scripting/WindowFunctions/window.htm#Example2).

Ad atlanabilir, ancak bu, alan adının Window işlev ifadesinin tamamına ayarlanmasıyla sonuçlanır. Örneğin, aşağıdaki örnekte AvgDepSalary:

```
[AvgSalary]:
Load 
	*,
	Window(avg(Salary), Department) as AvgDepSalary
Resident Employees;
```

Bilgi notu

Window fonksiyonuna bir alan adı verilmesi tavsiye edilir.

Window, yuvarlama veya temel sayısal işlemler gibi genel fonksiyonları destekler. Örneğin:

```
Load *, Round(Window(Sum(Salary),Department)) as SumDepSalary
```

```
Load *, Window(Sum(Salary),Department) + 5 as SumDepSalary
```

Bilgi notu

Window fonksiyonu tablonun tamamını tarar. Bellek tüketimi açısından, bu taramanın maliyeti tablodaki alan sayısı ile orantılıdır. Window fonksiyonunun üzerinde çalıştığı alanların yanı sıra az sayıda alana sahip bir tablo, her zaman çok sayıda alana sahip bir tabloya tercih edilir.

Tipik olarak, bir Window fonksiyonu, aynı toplama, bir Where cümlesi (filtre), bir Group by cümlesi (bölümleme) ve bir Order by cümlesi (sıralama) içeren benzer bir kod işlemine kıyasla 2-4 kat daha fazla bellek tüketir ve yeniden yükleme süresi 2-4 kat daha uzun sürer.

Window (Window (main\_expr, [partition1, partition2, ...], [sort\_type, [sort\_expr],[filter\_expr], [start\_expr, end\_expr]]))

Veri türünü döndürür: Satır başına bir değer; bu değer başka bir ifadeyle birleştirilebilir veya başka bir ifadede kullanılabilir ya da doğrudan LOAD deyimi tarafından oluşturulan sonuç tablosuna eklenebilir.

Bağımsız Değişkenler

| Bağımsız Değişken | Açıklama |
| --- | --- |
| main\_expr | Fonksiyon tarafından hesaplanan ve döndürülen ana giriş ifadesi. Bu, Median(Salary) gibi bir toplamaya dayanan herhangi bir ifade olmalıdır. Örneğin:<br><br>Window(Median(Salary)) as MedianSalary<br><br>İfade, toplama uygulanmamış bir alan adı da olabilir. Böyle bir durumda Window, bunu, Only() fonksiyonu o alana uygulanmış gibi işler. Örneğin:<br><br>Window(Salary) as WSalary<br><br>Window(Sum(Avg(Salary))) veya Window(Sum(Window(Salary))) gibi iç içe toplamalar ya da iç içe pencere fonksiyonları içeren ifadelere izin verilmez. |
| partition1, partition2 | main\_expr sonrasında istediğiniz sayıda bölüm tanımlayabilirsiniz. Bölmeler, toplamalarla birlikte uygulanacak kombinasyonları tanımlayan alanlardır. Örneğin:<br><br>Window(Avg(Salary), Department) as AvgDepSalary<br><br>Bu, her departman için ortalama maaşı hesaplar.<br><br>Birden fazla bölümleme parametresi sağlandığında, toplama işlemi her satıra benzersiz bir bölümleme alanı kombinasyonu ile uygulanır. Örneğin:<br><br>Window(Avg(Salary), Department, Country) as AvgDepSalaryPerCountry<br><br>Bu, her bir ülkede her departman için ortalama maaşı hesaplar. İsveç'teki Pazarlama ve Kanada'daki Pazarlama gibi farklı ülkelerdeki yinelenen departmanlar farklı bölümler olarak ele alınacaktır.<br><br>Bölümleme, group by cümlesiyle elde edilen gruplamaya benzer. Ancak bölümleme, giriş tablosuna kıyasla kayıt sayısını azaltmaz. |
| sort\_type, [sort\_expr] | İsteğe bağlı olarak sıralama türünü ve sıralama ifadesini belirtin. Bu, toplamanın gerçekleştirildiği sırayı tanımlar. sort\_type sabit bir dizedir ve üç değerden birine sahip olabilir:<br><br><ul> <li> <p> <span>ASC</span>: Artan sıralama.</p> </li> <li> <p> <span>DESC</span>:&nbsp;Azalan sıralama.</p> </li> <li> <p>NONE</p> </li> </ul><br><br>sort\_type ASC veya DESC tanımlarsanız bir sıralama ifadesi tanımlamanız gerekir. sort\_type NONE ile hiçbir sıralama ifadesi sağlanmamalıdır. Sıralama ifadesi, bir bölüm içindeki satırların sırasını belirler.<br><br>Örneğin:<br><br>Window(RecNo(), Department, 'ASC', Year)<br><br>Yukarıdaki örnekte bölüm içindeki toplama, Yıl alanına göre artan şekilde sıralanır.<br><br>Sıralama parametreleri, kayan pencerenin bir tabloyu işleme sırasını da etkiler. Örnek için bkz. [Örnek - Sıralanmış kayan pencereli bir alan ekleme](https://help.qlik.com/tr-TR/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/Scripting/WindowFunctions/window.htm#Example3). |
| filter\_expr | İsteğe bağlı olarak bir filtre ifadesi ekleyin. Bu, kaydın hesaplamaya dahil edilmesinin gerekip gerekmediğine karar veren bir Boolean ifadesidir.<br><br><br>filter\_expr sağlanmışsa bir sıralama türü dahil edilmelidir. Herhangi bir sıralama türü tanımlanmamışsa bağımsız değişken bir filtre ifadesi yerine bir bölüm parametresi olarak yorumlanabilir. filter\_expr parametresi tamamen atlanabilir veya doğru bir değer dahil edilebilir. Bunların her ikisi de hiçbir filtrenin kullanılmamasına neden olur, böylece hiçbir satır hariç tutulmaz.<br><br>Örneğin:<br><br>Window(avg(Salary), Department, 'ASC', Age, Country='US' Or Country='Canada') as AvgDepSalaryInUsOrCanada<br><br>Yukarıdaki Window ifadesi, Ülke alanının ABD veya Kanada olmadığı tüm satırları filtreleyerek bu satırları toplamadan hariç tutacaktır. Filtrelenen satırlar için hala çıktı değerleri olacaktır, ancak diğer tüm çıktı satırları gibi bunlar da yalnızca filtre tarafından hariç tutulmayan satırların toplu sonuçlarını içerecektir. |
| start\_expr,end\_expr | İsteğe bağlı olarak, kayan pencere işlevselliği için bağımsız değişkenleri ayarlayın. Bu, birlikte toplanacak satır sayısını daha da sınırlar. Her çıktı satırı, yalnızca geçerli satırdan önceki ve sonraki bir dizi satırın (toplanmış) sonuçlarını içerecektir. Kayan pencere iki bağımsız değişken gerektirir (start\_expr,end\_expr). Bu bağımsız değişkenler sağlanmışsa sıralama türü atlanmamalıdır. Aksi takdirde, bağımsız değişkenler kayan pencere yerine bir bölüm parametresi olarak yorumlanabilir. start\_expr,end\_expr parametresi şunları içerir:<br><br><ul> <li> <p>Başlangıç ifadesi:&nbsp;Pencereye dahil edilecek geçerli satırdan önceki satır sayısı.</p> </li> <li> <p>Bitiş ifadesi:&nbsp;Pencereye dahil edilecek geçerli satırdan sonraki satır sayısı.</p> </li> </ul><br><br>Örneğin, önceki 3 satırı, geçerli satırı ve sonraki satırı dahil etmek istiyorsanız:<br><br>Window(concat(Text(Salary),'-'), Department, 'NONE', 1, -3, 1) as WSlidingSalaryDepartment<br><br>Tüm önceki satırları veya sonraki satırları belirtmek için Unbounded() fonksiyonunu kullanabilirsiniz. Örneğin, tüm önceki satırları, geçerli satırı ve sonraki satırı dahil etmek için:<br><br>Window(concat(Text(Salary),'-'), Department, 'NONE', 1, UNBOUNDED(), 1) as WSlidingSalaryDepartment<br><br>Örneğin, geçerli satırdan üçüncü satırı ve tüm sonraki satırları dahil etmek için:<br><br>Window(concat(Text(Salary),'-'), Department, 'NONE', 1, 3, UNBOUNDED()) as WSlidingSalaryDepartment<br><br>Yukarıdaki örneklerde NONE sıralama türü, kodun bölüm argümanları ile sıralama türünden sonra gelen parametreler arasında ayrım yapabilmesi için sağlanmıştır. |

## Örnek - Toplama içeren bir alan ekleme

[](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/WindowFunctions/window.htm)

#### Örnek: Toplama içeren bir alan ekleme

Kod dosyası

Veri yükleme düzenleyicisinde yeni bir sekme oluşturun, sonra aşağıdaki verileri satır içi yükleme olarak yükleyin. Sonuçları görmek için Qlik Sense uygulamasında tabloyu oluşturun.

```
[Employees]:
Load 
	*,
	Window(avg(Salary), Department) as AvgDepSalary
Inline [
	Name, Department, Salary, Age, Year, Country
	David, Sales, 11, 32, 2019, Canada
	Sara, Sales, 22, 25, 2022, Sweden
	Nils, Marketing, 33, 18, 2022, Sweden
	Patrick, Marketing, 44, 43, 2022, Canada
	Anna, Sales, 55, 33, 2023, Canada
	Johan, Sales, 66, 26, 2025, Sweden
	Olle, Marketing, 77, 19, 2023, Sweden
	Bonnie, Marketing, 88, 44, 2023, US
]; 
```

Sonuçlar

Toplama içeren bir alan ekleme sonuçları

| Name | Department | Salary | Age | Year | Country | AvgDepSalary |
| --- | --- | --- | --- | --- | --- | --- |
| David | Sales | 11 | 32 | 2019 | Canada | 39 |
| Sara | Sales | 22 | 25 | 2022 | Sweden | 39 |
| Nils | Marketing | 33 | 18 | 2022 | Sweden | 61 |
| Patrick | Marketing | 44 | 43 | 2022 | Canada | 61 |
| Anna | Sales | 55 | 33 | 2023 | Canada | 39 |
| Johan | Sales | 66 | 26 | 2025 | Sweden | 39 |
| Olle | Marketing | 77 | 19 | 2023 | Sweden | 61 |
| Bonnie | Marketing | 88 | 44 | 2023 | US | 61 |

## Örnek - Belirli değerler için filtrelenmiş toplama içeren bir alan ekleme

[](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/WindowFunctions/window.htm)

#### Örnek: Belirli değerlere göre filtrelenmiş bir toplama içeren alan ekleme

Kod dosyası

Veri yükleme düzenleyicisinde yeni bir sekme oluşturun, sonra aşağıdaki verileri satır içi yükleme olarak yükleyin. Sonuçları görmek için Qlik Sense uygulamasında tabloyu oluşturun.

```
[Employees]:
Load 
*,
Window(avg(Salary), Department, 'NONE', Country = 'Sweden') as AvgDepSalarySweden
Inline [
	Name, Department, Salary, Age, Year, Country
	David, Sales, 11, 32, 2019, Canada
	Sara, Sales, 22, 25, 2022, Sweden
	Nils, Marketing, 33, 18, 2022, Sweden
	Patrick, Marketing, 44, 43, 2022, Canada
	Anna, Sales, 55, 33, 2023, Canada
	Johan, Sales, 66, 26, 2025, Sweden
	Olle, Marketing, 77, 19, 2023, Sweden
	Bonnie, Marketing, 88, 44, 2023, US
];
```

Sonuçlar

Belirli değerler için filtrelenmiş bir toplama içeren bir alan ekleme sonuçları

| Name | Department | Salary | Age | Year | Country | AvgDepSalarySweden |
| --- | --- | --- | --- | --- | --- | --- |
| David | Sales | 11 | 32 | 2019 | Canada | 44 |
| Sara | Sales | 22 | 25 | 2022 | Sweden | 44 |
| Nils | Marketing | 33 | 18 | 2022 | Sweden | 55 |
| Patrick | Marketing | 44 | 43 | 2022 | Canada | 55 |
| Anna | Sales | 55 | 33 | 2023 | Canada | 44 |
| Johan | Sales | 66 | 26 | 2025 | Sweden | 44 |
| Olle | Marketing | 77 | 19 | 2023 | Sweden | 55 |
| Bonnie | Marketing | 88 | 44 | 2023 | US | 55 |

## Örnek - Kayan pencereli bir alan ekleme

[](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/WindowFunctions/window.htm)

#### Örnek: Kayan pencere ile alan ekleme

Kod dosyası

Veri yükleme düzenleyicisinde yeni bir sekme oluşturun, sonra aşağıdaki verileri satır içi yükleme olarak yükleyin. Sonuçları görmek için Qlik Sense uygulamasında tabloyu oluşturun.

```
[Employees]:
Load 
	*,
	Window(concat(Text(Salary),'-'), Department, 'NONE', -1, 1) as SlidingWindow
Inline [
	Name, Department, Salary, Age, Year, Country
	David, Sales, 11, 32, 2019, Canada
	Sara, Sales, 22, 25, 2022, Sweden
	Nils, Marketing, 33, 18, 2022, Sweden
	Patrick, Marketing, 44, 43, 2022, Canada
	Anna, Sales, 55, 33, 2023, Canada
	Johan, Sales, 66, 26, 2025, Sweden
	Olle, Marketing, 77, 19, 2023, Sweden
	Bonnie, Marketing, 88, 44, 2023, US
];
```

Sonuçlar

Belirli değerler için filtrelenmiş bir toplama içeren bir alan ekleme sonuçları

| Name | Department | Salary | Age | Year | Country | SlidingWindow |
| --- | --- | --- | --- | --- | --- | --- |
| David | Sales | 11 | 32 | 2019 | Canada | 11-22 |
| Sara | Sales | 22 | 25 | 2022 | Sweden | 11-22-55 |
| Nils | Marketing | 33 | 18 | 2022 | Sweden | 33-44 |
| Patrick | Marketing | 44 | 43 | 2022 | Canada | 33-44-77 |
| Anna | Sales | 55 | 33 | 2023 | Canada | 22-55-66 |
| Johan | Sales | 66 | 26 | 2025 | Sweden | 55-66 |
| Olle | Marketing | 77 | 19 | 2023 | Sweden | 44-77-88 |
| Bonnie | Marketing | 88 | 44 | 2023 | US | 77-88 |

## Örnek - Sıralanmış kayan pencereli bir alan ekleme

[](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/WindowFunctions/window.htm)

#### Örnek: Kayan pencereli bir alan ekleme

Kod dosyası

Veri yükleme düzenleyicisinde yeni bir sekme oluşturun, sonra aşağıdaki verileri satır içi yükleme olarak yükleyin. Sonuçları görmek için Qlik Sense uygulamasında tabloyu oluşturun.

```
[Employees]:
Load 
	*,
	Window(concat(Text(Salary),'-'), Department, 'ASC', Age, -1, 1) as SortedSlidingWindow
Inline [
	Name, Department, Salary, Age, Year, Country
	David, Sales, 11, 32, 2019, Canada
	Sara, Sales, 22, 25, 2022, Sweden
	Nils, Marketing, 33, 18, 2022, Sweden
	Patrick, Marketing, 44, 43, 2022, Canada
	Anna, Sales, 55, 33, 2023, Canada
	Johan, Sales, 66, 26, 2025, Sweden
	Olle, Marketing, 77, 19, 2023, Sweden
	Bonnie, Marketing, 88, 44, 2023, US
];
```

Sonuçlar

Belirli değerler için filtrelenmiş bir toplama içeren bir alan ekleme sonuçları

| Name | Department | Salary | Age | Year | Country | SortedSlidingWindow |
| --- | --- | --- | --- | --- | --- | --- |
| David | Sales | 11 | 32 | 2019 | Canada | 11-55-66 |
| Sara | Sales | 22 | 25 | 2022 | Sweden | 22-66 |
| Nils | Marketing | 33 | 18 | 2022 | Sweden | 33-77-88 |
| Patrick | Marketing | 44 | 43 | 2022 | Canada | 44-77 |
| Anna | Sales | 55 | 33 | 2023 | Canada | 11-55 |
| Johan | Sales | 66 | 26 | 2025 | Sweden | 11-22-66 |
| Olle | Marketing | 77 | 19 | 2023 | Sweden | 33-44-77 |
| Bonnie | Marketing | 88 | 44 | 2023 | US | 33-88 |

Bölümlerin ve sıralama düzeninin kayan penceredeki toplamaları nasıl etkilediğini daha iyi anlamak için tabloyu ada göre artan şekilde sıralayın.

Belirli değerler için filtrelenen bir toplama içeren bir alan ekleme sonuçları

| Name | Department | Salary | Age | Year | Country | SortedSlidingWindow |
| --- | --- | --- | --- | --- | --- | --- |
| Anna | Sales | 55 | 33 | 2023 | Canada | 11-55 |
| Bonnie | Marketing | 88 | 44 | 2023 | US | 33-88 |
| David | Sales | 11 | 32 | 2019 | Canada | 11-55-66 |
| Johan | Sales | 66 | 26 | 2025 | Sweden | 11-22-66 |
| Nils | Marketing | 33 | 18 | 2022 | Sweden | 33-77-88 |
| Olle | Marketing | 77 | 19 | 2023 | Sweden | 33-44-77 |
| Patrick | Marketing | 44 | 43 | 2022 | Canada | 44-77 |
| Sara | Sales | 22 | 25 | 2022 | Sweden | 22-66 |

Johan satırında, toplama işlemi David'in yanı sıra Sara'nın maaş değerlerini de içermektedir. Bunlar, ada göre sıralandığında Satış departmanı bölümündeki önceki ve sonraki satırlardır.

Hangi satırların dahil edildiğini gösteren başka bir örnek için Windows ifadesini Window(concat(Text(Salary),'-'), Department, 'ASC', Age, -1, 1) yerine Window(concat(Text(Name),'-'), Department, 'ASC', Age, -1, 1) olarak değiştirin ve yeniden yükleyin. Aşağıdaki tabloda SortedSlidingWindow içindeki değerler Sales bölümü içindeki önceki ve sonraki satırların adını verir.

Belirli değerler için filtrelenmiş bir toplama içeren bir alan ekleme sonuçları

| Name | Department | Salary | Age | Year | Country | SortedSlidingWindow |
| --- | --- | --- | --- | --- | --- | --- |
| Anna | Sales | 55 | 33 | 2023 | Canada | Anna-David |
| Bonnie | Marketing | 88 | 44 | 2023 | US | Bonnie-Nils |
| David | Sales | 11 | 32 | 2019 | Canada | Anna-David-Johan |
| Johan | Sales | 66 | 26 | 2025 | Sweden | David-Johan-Sara |
| Nils | Marketing | 33 | 18 | 2022 | Sweden | Bonnie-Nils-Olle |
| Olle | Marketing | 77 | 19 | 2023 | Sweden | Nils-Olle-Patrick |
| Patrick | Marketing | 44 | 43 | 2022 | Canada | Olle-Patrick |
| Sara | Sales | 22 | 25 | 2022 | Sweden | Johan-Sara |

## Sınırlamalar

Window şu sınırlamalara sahiptir:

* Window özellikle bellek kullanımı açısından kaynakları yoğun kullanan bir fonksiyondur.

* Window, Qlik Sense Mobile uygulamasında desteklenmiyor.

* Grafik ifadeleri Window öğesini desteklemez.

* Window fonksiyonlarını diğer Window fonksiyonlarıyla iç içe geçiremezsiniz.

* Window bir toplama işlevi içinde kullanılamaz.

* Window, gruplama kriteri cümlesi içeren bir load deyiminde kullanılamaz.

* Window, where yan tümcesi içeren bir load ifadesinde kullanılamaz

* Window öğesinin tablonun tamamını tarayabilmesi gerekir.

* Kayar pencere işlevi kullanılırken WRank(), RecNo() ve RowNo(), Window ile birlikte kullanılamaz.

* Kayan pencere fonksiyonu kullanıldığında, hesaplama süresi pencerenin boyutuyla birlikte artar. Büyük pencere boyutlarıyla birleştirilmiş büyük tablolardan genellikle kaçınılmalıdır.