Aracılığıyla paylaş


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:

DAX görsel hesaplaması

Ö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.

DİZİN
MOVINGAVERAGE
OFSET
ORDERBY
PARTITIONBY
ARALIK
RÜTBE
ROWNUMBERRUNNINGSUM