ファクト テーブルの実装に関する GoodData の優れた提案に基づいて、異なるテーブル間で異なる属性を結合するというクライアントの要件を満たすモデルを設計することができました。私が今抱えている問題は、モデルのメトリックが非常に非正規化されており、データが繰り返されていることです。現在、結果を重複排除する方法を見つけようとしています。
たとえば、2 つのテーブルがあります。1 つ目は NAMES テーブルで、2 つ目はファクト テーブルです。
名前
Val2 名前
35 ジョン
36 ビル
37 サリー
事実
VAL1 VAL2 スコア コースグレード
1 35 50 90%
2 35 50 80%
3 35 50 60%
4 36 10 75%
5 37 40 95%
私がやろうとしているのは、重複値を排除する SCORE の平均を取得できるような方法でメトリックを作成することです。GoodData は、COUNT(VARIABLE1,RECORD) メトリクスを使用して実際に独自の結果を返すことができるという点で優れていますが、ブレークアウト情報を除外すると、平均的なストアを維持できないようです。すべてのフィールド (VAL2 を含む) を保持すると、すべてが表示されます。
VAL2スコア(平均)
35 50
36 10
37 40
平均: 33.33
しかし、VAL2 を削除すると、レコードの「一意性」が突然失われます。
スコア(平均)
40
私が欲しいのは、上で得た 33.33 のスコアです。
SELECT AVG(SCORE) で BY ステートメントを使用しようとしましたが、うまくいかないようです。ある種の DISTINCT 句が必要なようです。上記の最初の例に示されているロールアップ値を取得する方法について何か考えはありますか?