Основываясь на отличном предложении GoodData по внедрению таблиц фактов, я смог разработать модель, которая отвечает требованиям наших клиентов для объединения разных атрибутов в разных таблицах. Проблема, которую я имею сейчас, заключается в том, что модельные показатели сильно денормализированы, причем данные повторяются. В настоящее время я пытаюсь выяснить способ дедуплирования результатов.Расчет средней метрики в GoodData
Например, у меня есть две таблицы-первый представляет собой таблица ИМЕН и вторая моя таблица фактов:
ИМЕНА
Val2 Имя
35 John
36 Билла
37 Салли
FACT
VAL1 VAL2 SCORE COURSEGRADE
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 SCORE (AVG)
AVG: 33,33
Но когда я удаляю VAL2, я внезапно теряю «уникальность» записи.
SCORE (AVG)
То, что я хочу, это оценка 33.33 мы получили выше.
Я попытался использовать оператор BY в своем SELECT AVG (SCORE), но это, похоже, не работает. Это похоже на то, что мне нужно какое-то предложение DISTINCT. Любые мысли о том, как получить это значение rollup, показанное в моем первом примере выше?