2016-10-28 10 views
0

背景:Qlikは、最初の次元の平均に比べて寸法だけ平均比較

私は質問の数のスコアのリストを持っていると私は世代のグループに私の 参加者を分割し​​ています。

私は各質問の平均スコアを世代の平均と比較しようとしています。私の現在の(失敗している)スクリプトは以下の通りです。

if(Generation = 'Boomers2' 
    ,(Avg(Score)-Avg({<Generation = {"Boomers2"}>} Score)) 
     ,if(Generation = 'Generation X' 
      ,(Avg(Score)-Avg({<Generation = {"Generation X"}>} Score)) 
      ,(Avg(Score)-Avg({<Generation = {"Millenials"}>} Score)) 
    ) 
) 

私はいくつかのETLでこれを行うことができます確信している - 理想的に私はset analysisを使用して、これを行うために探していますが、どちらかの答えを受け付けます。参考までに、ここに私の読み込みスクリプトがあります。

SurveyRaw: 
LOAD 
    [F1] as RowID, 
    Timestamp(Timestamp#([A], 'DD/MM/YYYY hh:mm:ss')) AS [EntryDate], 
    [B] AS [YearOfBirth], 
    [C] AS [PerceivedGeneration], 
    [D] AS [AbilityToAdapt], 
    [E] AS [TeamWork], 
    [F] AS [ProblemSolving], 
    [G] AS [Collaboration], 
    [H] AS [Entrepreneurial], 
    [I] AS [Overtime], 
    [J] AS [Collaboration2], 
    [M] AS [FutureQuestion] 
FROM [lib://workingstyles] 
(html, codepage is 1252, embedded labels, table is @1) 
where IsNum([B]) and [B]<1998; //and [B]>=1966; 

Scores: 
CrossTable(Question, Score) 
Load RowID, [AbilityToAdapt],[TeamWork],[ProblemSolving],[Collaboration],[Entrepreneurial],[Overtime],[Collaboration2] 
Resident SurveyRaw; 

Load Question, Avg(Score) as AvgQuestionScore 
Resident Scores 
Group By Question; 

Left Join (SurveyRaw) 
Load Sum(Score) as TotalScore 
,Sum(Score)/7 as AvgUserScore 
,RowID 
Resident Scores Group By RowID; 

Drop Fields [AbilityToAdapt],[TeamWork],[ProblemSolving],[Collaboration],[Entrepreneurial],[Overtime],[Collaboration2] From [SurveyRaw]; 

Generations: 
Load * Inline 
[Year_Start, Year_End, Generation 
1946, 1954, Boomers1 
1955, 1965, Boomers2 
1966, 1976, Generation X 
1977, 1994, Millenials 
1995, 2012, Z]; 

IntervalMatch: 
IntervalMatch([YearOfBirth]) 
Load  Distinct Year_Start,Year_End 
Resident Generations; 
+0

「平均({1}スコア) - 平均(スコア)」 – Kostya

+0

@Kostya '平均({1}スコア)'は全体の平均を示しています代わりに世代のために –

答えて

0

あなたの世代にINT値を割り当てることができれば、あなたは世代と1あたりの平均を計算するために、設定された分析と計算フィールド、一方に基づいて、2つのマスター寸法を作成します

=Avg(Score)- avg({<Generation ={$(=Generation-1)}>} Score) 
0

ような何かを行うことができますすべての選択肢に対する合計平均。ロードスクリプトでそれを行うと、速くなります。

関連する問題