PENCERE
Şunlar için geçerlidir: Hesaplanmış sütun Hesaplanan tablo Ölçü Görseli hesaplaması
Verilen aralık içinde konumlandırılan birden çok satır döndürür.
Sözdizimi
WINDOW ( from[, from_type], to[, to_type][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parametreler
Süre | Tanım |
---|---|
kimden | Pencerenin nerede başladığını gösterir. Skaler değer döndüren herhangi bir DAX ifadesi olabilir. Davranış, from_type> parametresine <bağlıdır: - from_type> REL ise<, penceredeki ilk satırı almak için geçerli satırdan geri döndürülecek satır sayısı (negatif değer) veya ileri (pozitif değer). <- from_type> ABS ise ve <kimden> pozitifse, bölümün başından itibaren pencerenin başlangıcının konumudur. Dizin oluşturma 1 tabanlıdır. Örneğin, 1, pencerenin bölümün başından başladığı anlamına gelir. kimden> negatifse<, bölümün sonundaki pencerenin başlangıcının konumudur. -1, bölümdeki son satır anlamına gelir. |
from_type | from> parametresinin <davranışını değiştirir. Olası değerler ABS (mutlak) ve REL (göreli) değerleridir. Varsayılan değer REL'dir. |
kullanıcısı | kimden> ile <aynı, ancak pencerenin sonunu gösterir. Son satır pencereye eklenir. |
to_type | from_type> ile <aynıdır, ancak öğesinin <>davranışını değiştirir. |
ilişki | (İsteğe bağlı) Çıkış satırlarının döndürüldiği tablo ifadesi. Belirtilirse, partitionBy> içindeki <tüm sütunlar bu sütundan veya ilgili bir tablodan gelmelidir. Atlanırsa: - <orderBy> açıkça belirtilmelidir. - Tüm <orderBy> ve <partitionBy> ifadeleri tam sütun adları olmalı ve tek bir tablodan gelmelidir. - OrderBy ve <partitionBy> içindeki <tüm sütunların ALLSELECTED() varsayılan değeridir>. |
eksen | (İsteğe bağlı) Görsel şeklindeki bir eksen. Yalnızca görsel hesaplamalarda kullanılabilir ve ilişkiyi> değiştirir<. |
orderBy | (İsteğe bağlı) Her bölümün nasıl sıralanacağını tanımlayan ifadeleri içeren ORDERBY() yan tümcesi. Belirtilmezse: - <ilişki> açıkça belirtilmelidir. - PartitionBy'de önceden belirtilmemiş ilişkideki <> her sütuna göre sıralama varsayılanlarıdır>.< |
Boşluk | (İsteğe bağlı) Sıralama sırasında boş değerlerin nasıl işleneceğini tanımlayan bir numaralandırma. Bu parametre gelecekte kullanılmak üzere ayrılmıştır. Şu anda desteklenen tek değer DEFAULT değeridir; burada sayısal değerler için davranış boş değerler sıfır ve negatif değerler arasında sıralanır. Dizelerin davranışı, boş dizeler de dahil olmak üzere tüm dizelerden önce sıralanmış boş değerlerdir. |
partitionBy | (İsteğe bağlı) İlişkinin> nasıl <bölümlendiğini tanımlayan sütunları içeren PARTITIONBY() yan tümcesi. Belirtilmezse, <ilişki> tek bir bölüm olarak değerlendirilir. |
matchBy | (İsteğe bağlı) Verileri eşleştirmeyi ve geçerli satırı tanımlamayı tanımlayan sütunları içeren MATCHBY() yan tümcesi. |
sıfırlama | (İsteğe bağlı) Yalnızca görsel hesaplamalarda kullanılabilir. Hesaplamanın sıfırlanıp sıfırlanmadığını ve görsel şeklin sütun hiyerarşisinin hangi düzeyinde olduğunu gösterir. Kabul edilen değerler şunlardır: NONE, LOWESTPARENT, HIGHESTPARENT veya bir tamsayı. Davranış, tamsayı işaretine bağlıdır: - Sıfır veya atlanırsa, hesaplama sıfırlanmaz. NONE ile eşdeğerdir. - Pozitifse, tamsayı en yüksekten başlayıp tanecikten bağımsız olarak sütunu tanımlar. HIGHESTPARENT değeri 1'e eşdeğerdir. - Negatifse, tamsayı geçerli taneye göre en düşükten başlayan sütunu tanımlar. LOWESTPARENT , -1 ile eşdeğerdir. |
Dönüş değeri
Penceredeki tüm satırlar.
Açıklamalar
DAX tablo işlevleri tarafından eklenen sütunlar dışında, matchBy> mevcut olmadığında <ilişkili> her sütunun <veya matchBy> ve <partitionBy'deki <>her sütunun, <üzerinde> çalışılan geçerli satırı tanımlamaya yardımcı olmak için karşılık gelen bir dış değere sahip olması gerekir. from_type ve to_type her ikisi de ABS değerine sahipse<, aşağıdakiler yalnızca partitionBy> sütunları için <geçerlidir:> <>
- Tam olarak bir dış sütun varsa, değeri kullanılır.
- Karşılık gelen dış sütun yoksa:
- WINDOW önce karşılık gelen dış sütunu olmayan tüm sütunları belirler.
- WINDOW'un üst bağlamında bu sütunlar için var olan değerlerin her birleşimi için WINDOW değerlendirilir ve karşılık gelen satırlar döndürülür.
- WINDOW son çıktısı bu satırların birleşimidir.
- Karşılık gelen birden fazla dış sütun varsa, bir hata döndürülür.
İlişkinin <>tüm sütunları DAX tablo işlevleri tarafından eklendiyse bir hata döndürülür.
<matchBy> varsa, WINDOW satırı tanımlamak için matchBy> ve <partitionBy> sütunlarını kullanmayı <dener.
matchBy> yoksa ve orderBy ve <partitionBy>> içinde <belirtilen sütunlar ilişkideki <>her satırı benzersiz olarak tanımlayamıyorsa<:
- WINDOW, her satırı benzersiz olarak tanımlamak için gereken en az sayıda ek sütunu bulmaya çalışır.
- Bu tür sütunlar bulunabiliyorsa, WINDOW bu yeni sütunları otomatik olarak orderBy'ye <>ekler ve her bölüm bu yeni orderBy sütunları kümesi kullanılarak sıralanır.
- Bu tür sütunlar bulunamazsa bir hata döndürülür.
Şu durumda boş bir tablo döndürülür:
- OrderBy <veya <partitionBy>> sütununun karşılık gelen dış değeri ilişki> içinde <yok.
- Tüm pencere bölümün dışındadır veya pencerenin başlangıcı sona erdikten sonradır.
WINDOW, ilişkiyle <>aynı tabloda tanımlanan bir hesaplanmış sütun içinde kullanılırsa ve <orderBy> atlanırsa bir hata döndürülür.
Pencerenin başlangıcı ilk satırdan önceyse, ilk satıra ayarlanır. Benzer şekilde, pencerenin sonu bölümün son satırından sonraysa, son satıra ayarlanır.
<sıfırlama> yalnızca görsel hesaplamalarda kullanılabilir ve orderBy veya <partitionBy>> ile birlikte <kullanılamaz. <Sıfırlama> varsa eksen> <belirtilebilir ancak <ilişki> belirtilemez.
Örnek 1 - ölçü
Aşağıdaki ölçü:
3-day Average Price =
AVERAGEX(
WINDOW(
-2,REL,0,REL,
SUMMARIZE(ALLSELECTED('Sales'), 'Date'[Date], 'Product'[Product]),
ORDERBY('Date'[Date]),
KEEP,
PARTITIONBY('Product'[Product])
),
CALCULATE(AVERAGE(Sales[Unit Price]))
)
Her ürün için birim fiyatların 3 günlük ortalamasını döndürür. 3 günlük pencerenin, ürünün satışları olduğu üç günden oluştuğuna dikkat edin; bunun için üç takvim günü olması gerekmez.
Örnek 2 - ölçü
Aşağıdaki ölçü:
RunningSum =
SUMX (
WINDOW (
1, ABS, 0, REL,
ALLSELECTED (
'Date'[Fiscal Year],
'Date'[Month Number Of Year]
),
PARTITIONBY ( 'Date'[Fiscal Year] )
),
[Total Sales]
)
Her Mali Yıl için yeniden başlatılarak, Yılın Ay Sayısına Göre Toplam Satışlar için çalışan toplamı döndürür:
Yıl | Yılın Ay Sayısı | Satış Tutarı | RunningSum |
---|---|---|---|
FY2018 | 1 | $1,327,675 | $1,327,675 |
FY2018 | 2 | $3,936,463 | $5,264,138 |
FY2018 | 3 | 700.873 ABD doları | 5.965.011 ABD doları |
FY2018 | 4 | $1,519,275 | $7,484,286 |
FY2018 | 5 | 2.960.378 ABD doları | $10,444,664 |
FY2018 | 6 | 1.487.671 ABD doları | 11.932.336 ABD doları |
FY2018 | 7 | $1,423,357 | 13.355.693 ABD doları |
FY2018 | 8 | 2.057.902 ABD doları | 15.413.595 $ |
FY2018 | 9 | 2.523.948 ABD doları | 17.937.543 DOLAR |
FY2018 | 10 | 561.681 ABD doları | 18.499.224 ABD doları |
FY2018 | 11 | 4.764.920 ABD doları | $23,264,145 |
FY2018 | 12 | $596,747 | 23.860.891 ABD doları |
FY2019 | 1 | 1.847.692 ABD doları | 1.847.692 ABD doları |
FY2019 | 2 | 2.829.362 ABD doları | $4,677,054 |
FY2019 | 3 | 2.092.434 ABD doları | 6.769.488 ABD doları |
FY2019 | 4 | 2.405.971 ABD doları | $9,175,459 |
FY2019 | 5 | $3,459,444 | 12.634.903 ABD doları |
FY2019 | 6 | 2.850.649 ABD doları | 15.485.552 $ |
FY2019 | 7 | 2.939.691 ABD doları | 18.425.243 ABD doları |
FY2019 | 8 | 3.964.801 ABD doları | 22.390.045 ABD doları |
FY2019 | 9 | 3.287.606 ABD doları | 25.677.650 DOLAR |
FY2019 | 10 | $2,157,287 | 27.834.938 ABD doları |
FY2019 | 11 | 3.611.092 ABD doları | 31.446.030 ABD doları |
FY2019 | 12 | 2.624.078 ABD doları | 34.070.109 ABD doları |
FY2020 | 1 | $3,235,187 | $3,235,187 |
FY2020 | 2 | 4.070.046 ABD doları | $7,305,233 |
FY2020 | 3 | $4,429,833 | 11.735.066 ABD doları |
FY2020 | 4 | 4.002.614 ABD doları | 15.737.680 ABD doları |
FY2020 | 5 | $5,265,797 | 21.003.477 ABD doları |
FY2020 | 6 | $3,465,241 | 24.468.717 ABD doları |
FY2020 | 7 | $3,513,064 | 27.981.781 ABD doları |
FY2020 | 8 | $5,247,165 | 33.228.947 ABD doları |
FY2020 | 9 | 5.104.088 ABD doları | 38.333.035 ABD doları |
FY2020 | 10 | $3,542,150 | $41,875,184 |
FY2020 | 11 | $5,151,897 | 47.027.081 ABD doları |
FY2020 | 12 | $4,851,194 | 51.878.275 ABD doları |
Örnek 3 - görsel hesaplama
Aşağıdaki görsel hesaplama DAX sorgusu:
TotalSalesRunningSumByYear = SUMX(WINDOW(0, ABS, 0, REL, ROWS, HIGHESTPARENT), [SalesAmount])
Her yıl boyunca hesaplanan aya göre toplam satışları döndürür. 1 ve -2 değerleri aynı sonuçlarla HIGHESTPARENT yerine kullanılabilir.
Aşağıdaki ekran görüntüsünde görsel matris ve görsel hesaplama ifadesi gösterilmektedir:
Örnek 4 - görsel hesaplama
Aşağıdaki görsel hesaplama DAX sorgusu:
TotalSalesRunningSumByQuarter = SUMX(WINDOW(0, ABS, 0, REL, , -1), [SalesAmount])
Her üç aylık dönem boyunca hesaplanan aya göre toplam satışları döndürür.
İlgili içerik
DİZİN
MOVINGAVERAGE
OFSET
ORDERBY
PARTITIONBY
ARALIK
RÜTBE
ROWNUMBERRUNNINGSUM