空の日付フィールドのフィルタリング
時々、データは不完全であるか任意であるため、Analytics テーブルのフィールドが空欄になる場合があります。Analytics の式が空の日付フィールドを比較するときに、空の日付は最小システム値の 1900-01-01 として処理されます。日付を比較する式を作成するときには、常に、この動作を考慮する必要があります。
受注テーブル
次の受注テーブルを操作し、2011 年より前に送信されたすべての注文を分析できるようにフィルタリングします。レコードに注文日がない場合、キャンセル済み注文を表し、フィルタリングされたレコードに含めません。
Product_Category | Base_Margin | Order_Date | Order_ID | 優先度 | Quantity | Tax_Rate | カテゴリー |
---|---|---|---|---|---|---|---|
小規模事業 | 0.04 | 3 | 小 | 6 | 0.8 | 事務用品 | |
消費者 | 0.07 | 293 | 大 | 49 | 0.58 | 事務用品 | |
消費者 | 0.01 | 07/23/2012 | 293 | 大 | 27 | 0.39 | 事務用品 |
企業 | 0.08 | 10/15/2010 | 483 | 大 | 30 | 0.58 | 技術 |
消費者 | 0.08 | 08/28/2010 | 515 | 指定されていません | 19 | 0.5 | 事務用品 |
消費者 | 0.05 | 08/28/2010 | 515 | 指定されていません | 21 | 0.37 | 家具 |
企業 | 0.03 | 06/17/2011 | 613 | 大 | 12 | 0.38 | 事務用品 |
企業 | 0.09 | 06/17/2011 | 613 | 大 | 22 | 0 | 事務用品 |
企業 | 0.07 | 03/24/2012 | 643 | 大 | 21 | 0 | 事務用品 |
ホームオフィス | 0.07 | 02/26/2009 | 678 | 小 | 44 | 0.38 | 事務用品 |
簡易フィルターの使用
テーブルを最初にフィルタリングしようとするときには、次の簡易式を使用して、2011 年以降のすべての注文を除外します。
ヒント
リテラル日付値を囲むバッククオート ` に注意してください。リテラル日付時刻値は常にこの修飾子で囲む必要があります。詳細については、データ型を参照してください。
COMMENT 2011 年 1 月 1 日以降の注文日付を含むレコードを除外 SET FILTER TO Order_Date < `20110101`
最初のフィルター結果
Analytics は空の日付値を 1900-01-01 として処理し、1900 年 1 月 1 日は 2011 年 1 月 1 日よりも前であるため、結果は除外したい空の Order_Date フィールドがあるレコードを含みます。
Product_Category | Base_Margin | Order_Date | Order_ID | 優先度 | Quantity | Tax_Rate | カテゴリー |
---|---|---|---|---|---|---|---|
小規模事業 | 0.04 | 3 | 小 | 6 | 0.8 | 事務用品 | |
消費者 | 0.07 | 293 | 大 | 49 | 0.58 | 事務用品 | |
企業 | 0.08 | 10/15/2010 | 483 | 大 | 30 | 0.58 | 技術 |
消費者 | 0.08 | 08/28/2010 | 515 | 指定されていません | 19 | 0.5 | 事務用品 |
消費者 | 0.05 | 08/28/2010 | 515 | 指定されていません | 21 | 0.37 | 家具 |
ホームオフィス | 0.07 | 02/26/2009 | 678 | 小 | 44 | 0.38 | 事務用品 |
フィルタリング中に空欄を確認する
関数を使用するときには、2011 年以降のレコードを除外する前に空のデータ フィールドを除外できます。
ISBLANK( ) 関数はテキスト値が空の場合に真を返すため、Order_Date フィールドの操作によっては、空の値を除外できます。
COMMENT 空のフィールドと 2011 年以降の注文日を除外する SET FILTER TO NOT ISBLANK(DATETIME(Order_Date)) AND Order_Date < `20110101`
この式が評価されるときには、関数が内部から実行され、次の処理が発生します。
- DATETIME( ) 関数が Order_Date 日付値をテキスト値 (`20100828` から "20100828") に変換します。
- ISBLANK( ) 関数は、テキスト値が空白であるかどうかを確認し、真または偽を評価します。
- NOT 演算子は ISBLANK( ) から返される論理値を反転します。
- 注文日が空白(真)の場合、値は偽に反転され、このレコードがフィルターにより除外されます
- 注文日が空(偽)でない場合には、値は真に反転され、フィルターにより、注文日が 2011 よりも前かどうかがチェックされて、注文日の値が 2011 年 1 月 1 日よりも前のすべてのレコードが包含されます
ヒント
下位式が AND 演算子の両側で真と評価されるレコードのみが含まれます。下位式のいずれかが偽と評価される場合、レコードは除外されます。
2 番目のフィルター結果
注文が 2011 年よりも前に登録されたかどうかをテストする前に空の値を除外したため、このフィルターの結果は最初のようにキャンセル済み注文を含みません。
Product_Category | Base_Margin | Order_Date | Order_ID | 優先度 | Quantity | Tax_Rate | カテゴリー |
---|---|---|---|---|---|---|---|
企業 | 0.08 | 10/15/2010 | 483 | 大 | 30 | 0.58 | 技術 |
消費者 | 0.08 | 08/28/2010 | 515 | 指定されていません | 19 | 0.5 | 事務用品 |
消費者 | 0.05 | 08/28/2010 | 515 | 指定されていません | 21 | 0.37 | 家具 |
ホームオフィス | 0.07 | 02/26/2009 | 678 | 小 | 44 | 0.38 | 事務用品 |