この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

fill

データストリームに行を追加して、欠落している日付値を埋めます。

構文

1result = fill resultSet by (datecols, [partition]);
  • dateCols は、チェックする日付項目と日付列種別の文字列です。たとえば、完了日付の月と年に対する日付のギャップを埋めるには、dateCols=(CloseDate_Year, CloseDate_Month, "Y-M") を使用します。有効な値は、次のとおりです。
    • YearField, MonthField, "Y-M"
    • YearField, QuarterField, "Y-Q"
    • YearField, "Y"
    • YearField, WeekField "Y-W"
    • YearField, MonthField, DayField "Y-M-D"
  • partition (省略可能) データストリームをパーティションに分けるために使用するディメンション項目。例: partition='Type'

使用方法

fill は、データストリーム内の指定された日付項目を使用して、指定された日付項目のすべてのギャップを埋めます。たとえば、年と月でグループ化された完了した取引先のデータストリームがあるとします。9 月は誰も取引先を完了していないため、その月の行は存在しません。日付にこのようなギャップがあると、グラフを作成したり、timeseries のようなステートメントを使用したりする場合に、問題になる可能性があります。fill を使用すると、null データを含む 9 月の行が作成されるため、結果セットに各月の行が必ず 1 行以上存在します。

fill は、完全な日付値セットを必要とする timeseries や他のステートメントで使用します。

衣料品店のチェーンを管理しているとします。月別の総売り上げを分析します。ただし、2017 年 7 月と 8 月は改装のため閉店したため、これらの月の売り上げはありません。fill を使用して、欠落した日付の行を追加します。

1q = load "data";
2q = foreach q generate 'Amount' as 'Amount',  'Date_Year' as 'Date_Year', 'Date_Month' as 'Date_Month';
3q = fill q by (dateCols=(Date_Year, Date_Month, "Y-M"));

fill によって 2017 年 7 月と 8 月の null データを含む行が追加されました。

ミーティングデータセットを表示している図。

販売している衣料品の種別ごとに将来の売り上げを分析するとします。ただし、2017 年第 3 四半期に店舗でコートは販売されませんでした。種別でデータをグループ化した後、fill を使用して、欠落した日付の行を追加します。

1q = load "data";
2q = foreach q generate 'Amount' as 'Amount', 'Type' as 'Type', 'Date_Year' as 'Date_Year', 'Date_Quarter' as 'Date_Quarter';
3q = fill q by (dateCols=(Date_Year, Date_Quarter, "Y-Q"), partition='Type');

fill によって 2017 年第 3 四半期の null データを含む行が追加されました。

ミーティングデータセットを表示している図。

たとえば、timeseries を使用する必要があるのに、データの一部の日付が欠落している可能性があるとします。fill の使用
1q = load "TouristData";
2q = group q by ('Visit_Year', 'Visit_Month');
3q = foreach q generate 'Visit_Year', 'Visit_Month', sum('NumTourist') as 'sum_NumTourist';
4
5-- use fill() to generate null rows for any missing dates. Then you can use timeseries().
6q = fill q by (dateCols=('Visit_Year','Visit_Month', "Y-M"));
7
8q = timeseries q generate 'sum_NumTourist' as Tourists with (length=12,  dateCols=('Visit_Year','Visit_Month', "Y-M"));
9q = foreach q generate 'Visit_Year' + "~~~" + 'Visit_Month' as 'Visit_Year~~~Visit_Month', Tourists;