0

私の目標は、SSASでメジャーを導出するために使用されるファクトテーブルを作成することです。私が構築している尺度は「平均雇用期間」です。メジャーはダッシュボードに展開され、ユーザーはカレンダー期間を選択して、月、週、日にドリルダウンすることができます。

トランザクションデータは次のようになります。

DeptID     EmployeeID   StartDate   EndDate
--------------------------------------------
001        123           20100101   20120101   
001        124           20100505   20130101

ファクトテーブルにはどのフィールドが必要ですか?どのフィールドで集計を行う必要がありますか?平均化してみませんか?どんな種類の助けもありがたいです。

4

1 に答える 1

5

ファクト テーブルを設計するときはいつでも、最初に自問する一連の質問は次のとおりです。

  1. 分析しているビジネス プロセスは何ですか?
  2. 関連する事実とは何ですか?
  3. 事実をどの次元で分析したいですか?
  4. ファクト テーブルの最も低い (最も集約されていない) 詳細レベルは何を表しているか、つまり、ファクト テーブルの粒度は何か?

プロセスは人事(HR)のようです。

簡単に計算できる雇用期間という事実をすでに知っていますEndDate - StartDate。明らかなディメンションは、Department、Employee、Date (Start と End の 2 つのロールプレイング ディメンション) です。

今回は「平均勤続年数」を目安にしているので、粒度は部署ごとの社員数であると思われます(取引データでは、社員が異動した場合EmployeeIDは別の項目に同じものがリストされている場合がありますDeptID)。

スター スキーマは次のようになります。

Fact_HR
DeptKey   EmployeeKey   StartDateKey   EndDateKey  EmploymentLengthInDays
-------------------------------------------------------------------------
10001     000321         20100101       20120101    730
10001     000421         20100505       20130101    972

Dim_Department
DeptKey   DeptID   Name   ... (other suitable columns)
------------------------- ...
10001     001      Sales  ...

Dim_Employee
EmployeeKey   EmployeeID  FirstName  LastName  ... (other suitable columns)
---------------------------------------------- ...
000321        123         Alison     Smith     ...
000421        124         Anakin     Skywalker ...

Dim_Date
DateKey    DateValue  Year  Quarter Month Day ... (other suitable columns)
00000000   N/A        0     0       0     0   ...
20100101   2010-01-01 2010  1       1     1   ...
20100102   2010-01-02 2010  1       1     2   ...
...        ...              ...     ...   ... ... 
(so on for every date you want to represent)

で終わるすべての列Keyは代理キーです。あなたが興味を持っているという事実はEmploymentLengthInDays、メジャーを導き出すことができ、Avg. Employment Lengthすべてのディメンションの平均を使用して集計することです。

次のような質問をすることができます。

  • 部門別の平均勤続年数。
  • 2011 年から 2010 年 9 月までの従業員の平均雇用期間。
  • 特定の従業員の平均雇用期間 (従業員が勤務した各部門全体)。

ボーナス: 同じ列を使用する別のメジャーをキューブに追加することもできますが、代わりに SUM アグリゲーターがあり、これは と呼ばれる場合がありますTotal Employment Length。特定の従業員については、従業員が会社で働いた期間がわかりますが、部門全体では、その部門で利用できた工数の合計がわかります。1 つのファクトが複数のメジャーになる方法の単なる例です。

于 2013-01-16T00:18:43.900 に答える