Udostępnij za pośrednictwem


Wzór filtr składnia i przykłady (Analysis Services — wyszukiwanie danych)

Ta sekcja zawiera szczegółowe informacje na temat składni dla filtrów, wraz z wyrażeniami próbki.

Składnia polecenia filtrowania

Na ogół wyrażeń filtru są równoważne treść klauzula WHERE.Można łączyć wiele warunków, przy użyciu operatorów logicznych AND, OR, a NOT.

W tabele zagnieżdżone, można również użyć EXISTS i NOT EXISTS operatory. An EXISTS condition evaluates to true if the podkwerenda returns at least one row. Jest to przydatne w sytuacjach, kiedy konieczne jest ograniczenie modelu do sprawy, które zawierają określoną wartość w tabela zagnieżdżonej: na przykład klienci, którzy zakupili co najmniej raz element.

A NOT EXISTS warunek nie jest true Jeżeli warunek określony w podkwerendzie nie istnieje. Przykładem jest gdy użytkownik chce ograniczyć modelu do klientów, którzy nigdy nie zostały kupione określonego element.

Ogólna składnia jest następująca:

<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> ]
  • filtr
    Zawiera jeden lub więcej predykatów, połączonych operatorami logicznymi.

  • Lista predykatu
    Jeden lub więcej prawidłowych wyrażeń filtru, oddzielone operatorami logicznymi.

  • nazwa_kolumny
    Nazwa kolumna struktura wyszukiwania.

  • operator logiczny
    AND, OR, NOT

  • avPredicate
    Wyrażenie, które mogą być stosowane do wartość skalarna filtru struktura wyszukiwania tylko kolumna.Wyrażenie avPredicate można używać w modelu filtry lub w tabela zagnieżdżonej filtrów.

    Wyrażenie używające dowolne z poniższych operatorów można stosować tylko do ciągłego kolumna.:

    • < (mniejsze niż)

    • > (większe niż)

    • >= (większa lub równa)

    • <= (mniejsze niż lub równa)

    Uwaga

    Niezależnie od typu danych tych operatorów nie mogą być zastosowane do kolumna, która ma typ Discrete, Discretized, lub Key.

    Wyrażenie korzystające z następujących operatorów można zastosować do ciągłego, discrete, discretized lub klucz kolumna:

    • = (jest równa)

    • != (nie ma wartości)

    • IS NULL

    Jeśli <avPredicate> stosuje się discretized kolumna, wartość używana przez filtr może być dowolną wartością w określonym łańcucha.

    Innymi słowy nie zostanie zdefiniowana jako warunku AgeDisc = ’25-35’, ale zamiast tego należy obliczyć, a następnie użyj wartości z tego przedziału.

    Przykład:  AgeDisc = 27   oznacza dowolną wartość w tym samym interwałem jako 27, który jest w tym przypadek 25 35.

  • nestedTablePredicate
    Filtr wyrażenie, które ma zastosowanie do tabel zagnieżdżonych.Mogą być używane w filtrach modelu tylko.

    W argumencie podkwerendy <nestedTablePredicate> można stosować tylko do kolumna struktury tabela wyszukiwania

  • podkwerenda
    Instrukcja SELECT, po której następuje prawidłowe predykat lub listy predykatów.

    Wszystkie predykaty musi być typu <avPredicates>. Ponadto predykaty mogą odwoływać się tylko do kolumn, które znajdują się w bieżącej tabela zagnieżdżonej, identyfikowane przez <nazwa_kolumny>.

Ograniczenia dotyczące składni filtru

Do filtrów, obowiązują następujące ograniczenia:

  • Filtr może zawierać tylko proste predykatów.Obejmują one operatorów matematycznych, scalars i nazw kolumn.

  • Funkcje zdefiniowane przez użytkownika nie są obsługiwane w składni filtru.

  • logiczny nie operatorów, takich jak znak plus lub minus, nie są obsługiwane w składni filtru.

Przykłady filtrów

W poniższych przykładach pokazano użycie filtry zastosowane do model wyszukiwania.Jeśli wyrażenie filtru jest tworzona za pomocą Business Intelligence Development Studio, w Właściwość i okna Wyrażenie okienka w oknie dialogowym Filtr, będzie widać tylko ciąg znaków, który pojawia się po słów kluczowych WITH filtru.W tym miejscu definicja struktura wyszukiwania jest dołączone, aby ułatwić zrozumienie typu kolumna i sposób użycia.

Przykład 1: Typowy przypadek poziom filtrowania

W tym przykładzie przedstawiono prosty filtr, który ogranicza przypadki użycia w modelu do klientów, których zajęcie się Architekt i których okres ważności jest ponad 30.

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

Przykład 2: Przypadek poziom filtrowania przy użyciu zagnieżdżony atrybuty tabela

Jeśli do struktura wyszukiwania zawiera tabele zagnieżdżone, możesz albo filtrem o istnieniu wartości w tabela zagnieżdżonej lub filtr w tabela zagnieżdżonej wiersze, które zawierają określoną wartość.W tym przykładzie ogranicza przypadkach używane dla modelu do klientów w wieku z 30, który wprowadził co najmniej jeden zakupu, które zawarte mleko.

Jak pokazano w poniższym przykładzie, nie jest konieczne, że filtr za pomocą tylko kolumny, które znajdują się w modelu.Tabela zagnieżdżona Produkty jest częścią struktura wyszukiwania, ale nie znajduje się w model wyszukiwania.Jednak nadal można filtrować według wartości i wartości atrybutów w tabela zagnieżdżonej.Aby wyświetlić szczegółowe informacje o tych przypadkach, przeglądanie szczegółowe musi być włączony.

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’)
)

Przykład 3: Filtrowanie na wiele zagnieżdżonych atrybuty tabela poziom przypadek

W tym przykładzie przedstawiono filtru trzy części: warunek ma zastosowanie do tabela przypadek, inny warunek do atrybut w tabela zagnieżdżonej i inny warunek na konkretną wartość w jednej z kolumn w tabela zagnieżdżonej.

Pierwszy warunek w filtrze Age > 30, stosuje się do kolumna, przypadek tabela. Warunki pozostałe odnoszą się do tabela zagnieżdżonej.

Drugi warunek EXISTS (SELECT * FROM Products WHERE ProductName=’Milk’, sprawdza obecność co najmniej jeden zakupu uwzględnione mleko tabela zagnieżdżonej. Trzeci warunek Quantity>=2, oznacza, że klient musi zostały kupione co najmniej dwie jednostki mleka w ramach pojedynczej transakcji.

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) 
)

Przykład 4: Filtrowanie przy nieobecności zagnieżdżone atrybuty tabela poziom przypadek

W tym przykładzie pokazano, jak ograniczyć spraw do odbiorcy, który nie został zakupiony towar, za pomocą filtrowania w przypadku braku atrybut w tabela zagnieżdżonej.W tym przykładzie model jest szkolony przy użyciu klientów w wieku z 30, którzy kupili nigdy nie mleko.

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’) )

Przykład 5: Filtrowanie na wiele wartości tabela zagnieżdżoną

Celem w przykładzie jest wyświetlanie, filtrowanie tabela zagnieżdżonej.Filtr tabela zagnieżdżonej jest stosowane po przypadek filtr, a jedynie ogranicza wiersze w tabela zagnieżdżonej.

Ten model może zawierać wielu przypadki puste tabele zagnieżdżone, ponieważ nie określono EXISTS.

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

Przykład 6: Filtrowanie na tabela zagnieżdżoną atrybuty i EXISTS

W tym przykładzie filtr w tabela zagnieżdżonej ogranicza wiersze do tych, które zawierają mleko lub butelkowanej wody.Następnie w przypadkach, w modelu są ograniczone za pomocą EXISTS Instrukcja. Dzięki temu upewnić się, że w tabela zagnieżdżonej nie jest pusty.

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))

Przykład 7: Złożone kombinacje filtrów

Scenariusz dla tego modelu przypomina, przykład 4, ale jest znacznie bardziej złożony.Tabela zagnieżdżona ProductsOnSale, ma warunek filtrowania (OnSale) co oznacza, że wartość OnSale must be true dla tego produktu na liście NazwaProduktu.Tutaj OnSale jest kolumna struktury.

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

Na koniec warunki są łączone i dodatkowe ograniczenia są dodawane do tabela przypadek.Wynik jest przewidywanie zakupów produktów w ProductsNotOnSale listy oparte na sprawy, które są zawarte w ProductsOnSale lista wszystkich klientów na 25 roku życia.

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)