マイニング モデルへのフィルターの適用
適用対象:
SQL Server Analysis Services Azure Analysis Services
Power BI Premium
重要
データ マイニングは、SQL Server 2017 Analysis Services で非推奨となり、SQL Server 2022 Analysis Services で廃止されました。 非推奨および廃止された機能については、ドキュメントは更新されません。 詳細については、 Analysis Services の下位互換性に関するページを参照してください。
入れ子になったテーブルがマイニング構造に含まれている場合は、ケース テーブル、入れ子になったテーブル、またはその両方にフィルターを適用できます。
次の手順は、ケース フィルター、入れ子になったテーブル行に適用するフィルターの両方を作成する方法を示しています。
ケース テーブルの条件は、収入が 30000 ~ 40000 である顧客に限定することです。 入れ子になったテーブルの条件は、特定の品目を購入していない顧客に限定することです。
この例で作成された、完全なフィルター条件は次のとおりです。
[Income] > '30000'
AND [Income] < '40000'
AND EXISTS (SELECT * FROM [<nested table name>]
WHERE [Model] <> 'Water Bottle' )
マイニング モデルに対してケース フィルターを作成するには
SQL Server Data Toolsで、ソリューション エクスプローラーで、フィルター処理するマイニング モデルを含むマイニング構造をクリックします。
[マイニング モデル] タブをクリックします。
モデルを選択し、右クリックしてショートカット メニューを開きます。
または
モデルを選択します。 次に、 [マイニング モデル] メニューの [モデル フィルターの設定]をクリックします。
[モデル フィルター] ダイアログ ボックスで、 [マイニング構造列] ボックスのグリッドの先頭行をクリックします。
データ ソースに 1 つのフラット テーブルが含まれる場合、ドロップダウン リストには該当のテーブルの列名のみが表示されます。
マイニング構造に複数のテーブルが含まれる場合、リストにはソース テーブルの名前が示されます。 テーブルを選択するまで列名は表示されません。
マイニング構造にケース テーブルと入れ子になったテーブルが含まれる場合は、ドロップダウン リストにケース テーブルの列、入れ子になったテーブルの名前が表示されます。
ドロップダウン リストから列を選択します。
テキスト ボックスの左側のアイコンが変化して、選択されたアイテムがテーブルであるか列であるかが示されます。
[演算子] ボックスをクリックし、一覧から演算子を選択します。 有効な演算子は、選択した列のデータ型によって変わります。
[値] ボックスをクリックし、ボックスに値を入力します。
たとえば、列として [Income ] を選択し、より大きい演算子 (>) を選択し、「 30000」と入力します。
グリッドの次の行をクリックします。
作成したフィルター条件が [式] ボックスに自動的に追加されます。 たとえば、
[Income] > '30000'のように指定します。グリッドの次の行の [ルールの適用条件] ボックスをクリックし、条件を追加します。
たとえば、BETWEEN 条件を作成するには、論理演算子のドロップダウン リストから [AND] を選択します。
演算子を選択し、手順 7. と手順 8. に示したように値を入力します。
たとえば、もう一度列として [Income ] を選択し、less than 演算子 (<) を選択し、「 40000」と入力します。
グリッドの次の行をクリックします。
[式] ボックスのフィルター条件が自動的に更新され、新しい条件が追加されます。 完成した式は次のようになります。
[Income] > '30000'AND [Income] < '40000'
マイニング モデルの入れ子になったテーブルにフィルターを追加するには
[モデル フィルター]< ダイアログ ボックスの> [マイニング構造列] の下にあるグリッド内の空の行をクリックします。
ドロップダウン リストから、入れ子になったテーブルの名前を選択します。
テキスト ボックスの左側のアイコンが変化して、選択されたアイテムがテーブルの名前であることが示されます。
[演算子] ボックスをクリックし、 [次の値を含む] または [次の値を含まない]を選択します。
ケース テーブルでは入れ子になったテーブルの特定の値を含むケースのみに制限しているため、 [モデル フィルター] ダイアログ ボックスで入れ子になったテーブルに対して選択できる条件はこれだけです。 次の手順で入れ子になったテーブルの条件に値を設定します。
[ 値 ] ボックスをクリックし、 (...) ボタンをクリックして式を作成します。
[<フィルター] ダイアログ ボックスが>開きます。 このダイアログ ボックスでは、現在のテーブルにのみ条件を設定できます。ここでは、入れ子になったテーブルです。
[マイニング構造列] ボックスをクリックし、入れ子になったテーブル列のドロップダウン リストから列名を選択します。
[演算子] をクリックし、列に対して有効な演算子の一覧から演算子を選択します。
[値] をクリックし、値を入力します。
たとえば、 [マイニング構造列] には、 [モデル]を選択します。 [演算子]には、 <>を選択し、「 Water Bottle」という値を入力します。 この条件で次のフィルター式が作成されます。
EXISTS (SELECT * FROM [<nested table name>] WHERE [Model] <> 'Water Bottle' )
注意
入れ子になったテーブル属性の数は無制限である可能性があるため、SQL Server Analysis Servicesは選択できる値の一覧を提供しません。 値を正確に入力する必要があります。 また、入れ子になったテーブルに LIKE 演算子を使用することはできません。
必要に応じて、さらに条件を追加します。 [条件] グリッドの左側にある [ルールの適用条件] ボックスで AND または OR を選択して、条件を結合します。 [OK] をクリックします。
[モデル フィルター] ダイアログ ボックスで、 [フィルター] ダイアログ ボックスを使用して作成した条件を確認します。 入れ子になったテーブルの条件は、ケース テーブルの条件に追加され、フィルター条件の完全なセットは [式] ボックスに表示されます。
必要に応じて、 [クエリの編集] をクリックして、フィルター式を手動で変更できます。
注意
フィルター式の一部を手動で変更すると、グリッドが無効になり、その後はテキスト編集モードでしかフィルター式を操作できなくなります。 グリッド編集モードに戻すには、フィルター式を消去して最初からやり直す必要があります。
関連項目
マイニング モデルのフィルター選択 (Analysis Services - データ マイニング)
マイニング モデル タスクと操作方法
マイニング モデルからのフィルターの削除