1

目標到達プロセスのクリックスルーを取得するクエリがあります。ユーザーがページにヒットした場合は「1」、そうでない場合は NULL として記録されます -

SELECT datestamp
    ,COUNT(visits) as Visits
    ,count([QE001]) as firstcount 
    ,count([QE002]) as secondcount
    ,count([QE004]) as thirdcount
    ,count([QE006]) as finalcount
    ,user_type
    ,user_loc
FROM
    dbname.dbo.loggingtable
GROUP BY user_type, user_loc

各比率の列が必要です。たとえば、firstcount/Visits、secondcount/firstcount などと、合計 (finalcount/Visits) が必要です。

私はこれができることを知っています

  • 「計算フィールド」を追加して Excel ピボットテーブルに
  • グループ化によるSQLで
  • PowerPivot で CalculatedColumn を追加します。

    =IFERROR(QueryName[finalcount]/QueryName[Visits],0)
    
  • しかし、レポートの消費者に、user_typeまたはuser_locなどだけでスライスするオプションを与える必要があり、Excelはプロポーションを追加する傾向があり、b / cでは機能しません

    SUM(A/B) != SUM(A)/SUM(B)
    

DAX/MDX/PowerPivot に計算列/メジャーを追加して、データのユーザー定義サブセット(日付範囲、ユーザー タイプ、場所など)?

4

1 に答える 1

4

はい、計算された測定値を介して。計算列は、行/列/レポート ヘッダーに表示する値を作成するためのものです...計算メジャーは、ピボット テーブルの値セクションに表示する値を作成するためのものであり、モデル。

最も簡単な方法は、powerpivot シートの計算領域に 3 つの計算された "メジャー" を作成することです。

TotalVisits:=SUM(QueryName[visits])
TotalFinalCount:=SUM(QueryName[finalcount])
TotalFinalCount2VisitsRatio:=[TotalFinalCount]/[TotalVisits]

次に、計算されたメジャー [TotalFinalCount2VisitsRatio] を user_type または user_loc (または何でも) でスライスすると、値が正しく計算されます。ここでの違いは、xVelocity エンジンに SUM-then-DIVIDE を明示的に指示していることです。計算列を作成すると、エンジンは DIVIDE-then-SUM が必要であると認識します。

また、メジャーを 3 つの個別のメジャーに分割する必要はありません...それは良い習慣です。詳細を知りたい場合は、この本をお勧めします...著者は PowerPivot/DAX の第一人者であり、非常にわかりやすい本です。

于 2013-01-24T13:53:24.570 に答える