2013-12-10 3 views
3

Основываясь на отличном предложении 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, показанное в моем первом примере выше?

ответ

3

Приятно помочь здесь.Я хотел бы попробовать следующее:

  • Создать промежуточную метрику (назовем его оценка по Employee):

    SELECT MIN (SCORE) BY ID В ЦЕЛОМ ДРУГИЕ РАЗМЕРЫ

  • Тогда, когда вы этот показатель определяется, вы должны быть в состоянии создать метрику для среднего балла следующим образом:

    SELECT, AVG (Score работника)

Причина, по которой мы создаем первую метрику, - заставить таблицу нормализовать балл вокруг атрибута ID, который избавляется от дубликатов, когда мы используем это в следующем показателе (мы могли бы использовать MAX или AVG также, это не дело). Надеюсь, это решит вашу проблему, сообщите мне, если она не работает, и я буду рад помочь вам больше. Также вы можете проверить Developer GoodData в Portal для получения дополнительной информации о сообщении:

https://developer.gooddata.com/docs/reporting

Беста,

JT

Смежные вопросы