Aracılığıyla paylaş


Süzgeç sözdizimi ve örnekleri model (Analysis Services - veri madenciliği)

Bu bölüm, filtreleri örnek ifade sözdizimi hakkında ayrıntılı bilgi sağlar.

Sözdizimi süzme

Süzgeç ifadeleri, genellikle bir WHERE yan tümce bir içerik için eşdeğerdir.Mantıksal işleçler kullanılarak birden çok koşul bağlanabilirler. AND, OR, ve NOT.

Iç içe geçmiş tablolar içinde de kullanılabilir EXISTS ve NOT EXISTS işleçler. Bir EXISTS Koşul veren true alt sorgu en az bir satır döndürürse. Bu, iç içe geçmiş tablo içinde belirli bir değeri içeren servis taleplerini modeli sınırlamak istediğiniz durumlarda yararlıdır: Örneğin, öğe satın en az bir kez müşteriler.

C NOT EXISTS Koşul veren true Koşul belirlediyseniz, alt sorgu yok. Hiçbir zaman belirli öğe satın almış olan müşteriler için model sınırlamak istediğinizde bir örnektir.

Genel sözdizimi aşağıdaki gibidir:

<filter>::=<predicate list>  | ( <predicate list> )
<predicate list>::= <predicate> | [<logical_operator> <predicate list>] 
<logical_operator::= AND| OR
<predicate>::= NOT <predicate>|( <predicate> ) <avPredicate> | <nestedTablePredicate> | ( <predicate> ) 
<avPredicate>::= <columnName> <operator> <scalar> | <columnName> IS [NOT] NULL
<operator>::= = | != | <> | > | >= | < | <=
<nestedTablePredicate>::= EXISTS (<subquery>)
<subquery>::=SELECT * FROM <columnName>[ WHERE  <predicate list> ]
  • filtre
    Bir veya daha fazla yüklemler mantıksal işleçleri tarafından bağlı içerir.

  • Koşul listesi
    Mantıksal işleçleri tarafından ayrılmış bir veya daha fazla geçerli süzgeç ifadeleri.

  • columnName
    Ad araştırma yapısının sütun.

  • mantıksal işleç
    AND, OR, NOT

  • avPredicate
    Filtre yalnızca skaler araştırma yapısı sütuna uygulanan bir ifadesi.AvPredicate ifade modeli süzgeçleri veya iç içe geçmiş tablo filtrelerini kullanılabilir.

    Aşağıdaki işleçlerden birini kullanan bir ifade yalnızca, sürekli bir sütun için uygulanabilir.:

    • < (küçüktür)

    • > (büyüktür)

    • >= (daha büyük veya eşit)

    • <= (küçüktür veya eşittir)

    Not

    Veri türü ne olursa olsun, bu işleçler tipine sahip bir sütun için uygulanamaz Discrete, Discretized, veya Key.

    Bir sürekli, ayrı, discretized veya anahtar sütun, aşağıdaki işleçlerden birini kullanan bir ifade uygulanabilir:

    • = (eşittir)

    • != (eşit değil)

    • IS NULL

    If the <avPredicate> applies to a ayrık değerli sütun, the value used in the filter can be any value in a specific bucket.

    Diğer bir deyişle, koşul olarak tanımladığınız. AgeDisc = ’25-35’, ancak bunun yerine hesaplamak ve sonra bir değer bu aralığı.

    Örnek:  AgeDisc = 27   herhangi bir değer 27, aynı aralığa anlamına gelir; bu durum 25-35'tir.

  • nestedTablePredicate
    Bir iç içe geçmiş tablolar için geçerli bir ifade filtre uygulayın.Model filtreleri de kullanılabilir.

    Sub-query bağımsız değişkeni olarak <nestedTablePredicate> yalnızca bir tablo araştırma yapısı sütun için geçerli olabilir

  • alt sorgu
    Geçerli yüklemi veya yüklemler listesi tarafından izlenen BIR deyim.

    Tüm yüklemler türünde olmalıdır <avPredicates>. Ayrıca, yüklemler tanımlanan geçerli iç içe geçmiş tablo, dahil olan sütunlar başvuruda bulunabilir <columnName>.

Süzgeç sözdizimi ile ilgili sınırlamalar

Süzgeçleri için uygulanacak kısıtlamalar:

  • Filtre yalnızca basit yüklemler içerebilir.Bunlar, matematik işleçleri scalars ve sütun adlarını içerir.

  • Kullanıcı tanımlı işlevler, süzgeç sözdiziminde desteklenmez.

  • Süzgeç sözdiziminde olmayan Boole işleçleri (artı veya eksi işaretleri, desteklenmiyor.

Süzgeçleri örnekleri

Aşağıdaki örneklerde, uygulanan süzgeçleri kullanımını gösteren bir araştırma modeli.Süzgeç ifadesi kullanarak oluşturursanız Business Intelligence Development Studio, içinde özellik penceresi ve Ifade bölmesinde Süzgeç iletişim kutusunun yalnızca WITH SÜZGEÇ anahtar sözcükleri sonra görünen dize görür.Burada, araştırma yapısı tanım sütun türü ve kullanımı kolaylaştırmak için bulunur.

Örnek 1: Normal durum düzey filtre

Bu örnekte, servis taleplerini, meslek Mimarı ve, yaş üzerinde 30 müşterilere modelinde kullanılan sınırlayan basit bir süzgeç gösterir.

ALTER MINING STRUCTURE MyStructure  ADD MINING MODEL MyModel_1
(
CustomerId,
Age,
Occupation,
MaritalStatus PREDICT
)
WITH FILTER (Age > 30 AND Occupation=’Architect’)

Örnek 2: durum düzey kullanarak iç içe tablo öznitelikleri süzme

Varsa, araştırma yapısı, iç içe geçmiş tablolar içeriyor ya da iç içe geçmiş bir tablo veya belirli bir değer içeren iç içe geçmiş tablo satırları filtre değeri varlığını filtre edebilirsiniz.Bu örnekte, servis taleplerini müşterilere modeli sütlü dahil, en az bir satınalma yapan 30 yaşını üzerinde kullanılan kısıtlar.

Bu örnekte gösterildiği gibi süzgeç modelinde bulunan sütunlar kullanmanız gerekli değildir.Iç içe geçmiş tablo Ürünler madenciliği yapısının parçası olan, ancak madenciliği modelinde eklenmemiştir.Ancak, yine de değerleri ve iç içe geçmiş tablo öznitelikleri süzme yapabilirsiniz.Bu servis talebi ayrıntılarını görüntülemek için , detaylandırma etkinleştirilmiş olması gerekir.

ALTER MINING STRUCTURE MyStructure  ADD MINING MODEL MyModel_2
(
CustomerId,
Age,
Occupation,
MaritalStatus PREDICT
)
WITH DRILLTHROUGH, 
FILTER (Age > 30 AND EXISTS (SELECT * FROM Products WHERE ProductName=’Milk’)
)

Örnek 3: durum düzey üzerinde birden çok iç içe tablo öznitelikleri süzme

Bu örnek, üç bölümlü bir süzgeç gösterir: büyük bir tablo, başka bir koşul için bir koşul geçerli bir öznitelik iç içe geçmiş tablo ve iç içe geçmiş tablo sütunlardan biri belirli bir değeri başka bir koşul.

Filtredeki, ilk koşulu Age > 30, durum tablodaki sütun için geçerlidir. Kalan koşulları, iç içe geçmiş tablo için geçerlidir.

Ikinci bir koşul EXISTS (SELECT * FROM Products WHERE ProductName=’Milk’, en az bir satınalma sütlü bulunan iç içe geçmiş tablo varlığını denetler. Üçüncü koşulu Quantity>=2, müşteri sütlü tek bir işlemde en az iki birim satın gerekir demektir.

ALTER MINING STRUCTURE MyStructure  ADD MINING MODEL MyModel_3
(
CustomerId,
Age,
Occupation,
MaritalStatus PREDICT,
Products PREDICT
(
ProductName KEY,
Quantity      
)
)
FILTER (Age > 30 AND EXISTS (SELECT * FROM Products WHERE ProductName=’Milk’  AND Quantity >= 2) 
)

Örnek 4: durum düzey iç içe tablo öznitelikleri devamsızlık filtresi

Bu örnekte, servis talepleriyle, belirli öğe iç içe geçmiş tablo özniteliğin devamsızlık süzerek satın alan müşterilerin nasıl gösterir.Bu örnekte, sütlü hiçbir zaman alan 30 yaşını Müşteriler'i kullanarak model eğitim almış.

ALTER MINING STRUCTURE MyStructure  ADD MINING MODEL MyModel_4
(
CustomerId,
Age,
Occupation,
MaritalStatus PREDICT,
Products PREDICT
(
ProductName
)
)
FILTER (Age > 30 AND NOT EXISTS (SELECT * FROM Products WHERE ProductName=’Milk’) )

Örnek 5: Birden fazla iç içe tablo değerleri göre süzme

Amaç örneğin iç içe geçmiş tablo süzme göstermektir.Iç içe geçmiş tablo filtresi sonra durum filtre uygulanır ve yalnızca iç içe geçmiş tablo satırlarını kısıtlar.

EXISTS belirtilmemiş olduğundan bu model, birden çok servis talepleriyle boş iç içe geçmiş tablolar içerebilir.

ALTER MINING STRUCTURE MyStructure  ADD MINING MODEL MyModel_5
(
CustomerId,
Age,
Occupation,
MaritalStatus PREDICT,
Products PREDICT
(
ProductName KEY,
Quantity      
) WITH FILTER(ProductName=’Milk’ OR ProductName=’bottled water’)
)
WITH DRILLTHROUGH

Örnek 6: Iç içe tablo üzerinde süzme işlemi, öznitelikleri ve EXISTS

Örneğin, iç içe geçmiş tablo üzerinde filtre satırları sütlü veya bottled su içeren bu sınırlar.Sonra servis taleplerini modelinde kullanarak kısıtlanır bir EXISTS deyim. Bu, iç içe geçmiş tablo boş değil kesinleştirir.

ALTER MINING STRUCTURE MyStructure  ADD MINING MODEL MyModel_6
(
CustomerId,
Age,
Occupation,
MaritalStatus PREDICT,
Products PREDICT
(
ProductName KEY,
Quantity      
) WITH FILTER(ProductName=’Milk’ OR ProductName=’bottled water’)
)
FILTER (EXISTS (Products))

Örnek 7: Karmaşık filtre birleşimleri

Bu model senaryosu, örnek 4'ün benzer, ancak daha karmaşıktır.Iç içe geçmiş tablo ProductsOnSaleFiltre koşulu var(OnSale) değeri anlamına gelir OnSale must be true listelenen ürün için ProductName.Buraya, OnSale bir yapıdır sütun.

The second part of the filter, for ProductsNotOnSale, repeats this syntax, but filters on products for which the value of OnSale is not true(!OnSale).

Son olarak koşulları birleştirilir ve ek bir kısıtlama, durumne eklenir tablo.Satınalmalar, ürünler, tahmin için sonucudur ProductsNotOnSale temel alan servis taleplerini içerdiği listesindeProductsOnSale listesinden 25 yaşını üzerinden tüm müşteriler için.

ALTER MINING STRUCTURE MyStructure ADD MINING MODEL MyModel_7

(

CustomerId,

Age,

Occupation,

MaritalStatus,

ProductsOnSale

(

ProductName KEY

) WITH FILTER(OnSale),

ProductsNotOnSale PREDICT ONLY

(

ProductName KEY

) WITH FILTER(!OnSale)

)

WITH DRILLTHROUGH,

FILTER (EXISTS (ProductsOnSale) AND EXISTS(ProductsNotOnSale) AND Age > 25)