DISTINCTCOUNT с фильтрацией -1 идентификаторов - PullRequest
0 голосов
/ 27 октября 2010

Пожалуйста, потерпите меня, поскольку я новичок в SSAS / MDX. Мне нужна мера DISTINCTCOUNT для столбца ID моей таблицы фактов, но после фильтрации -1, то есть неизвестных идентификаторов. Я тоже люблю нарезать / нарезать кубиками. Вот мои столы

    DimStudent
----------------------------
    ID       Name
    -1       Unknown
    1        Joe
    2        Tim
    3        Paul
    4        Zina


    DimCourse
----------------------------
    ID        Name
    -1        Not Registered
    11        Maths
    22        Science
    33        Arts



FactStudent
---------------
DimStudentID  DimCourseID  YearID  Marks
-----------------------------------------------------------------
1                    11                   2009     89
1                    33                   2009      10
1                    33                   2010      90
1                    -1                   2009      0
2                    -1                   2009      0
3                    22                   2009      90
4                    -1                   2009      0

В приведенном выше примере StudentID 1 имеет один курс с -1 ID, и он повторил один курс. Если я проведу индивидуальный подсчет курса для каждого студента, это даст мне 3 для студента 1, а для студента 2 и 4 - 1. Мой ожидаемый результат (без учета года):

Количество студентов Имя курса

Джо 2 (вместо 3) Тим 0 (вместо 1) Павел 1 Зина 0 (вместо 1)

А если просто подсчитать, это даст мне 3 вместо 4.

Еще раз спасибо за вашу помощь, и она очень ценится.

Привет

1 Ответ

0 голосов
/ 27 октября 2010

Чтобы получить отдельное количество DimCourseID из FactStudent, исключая значения DimCourseID, равные -1, выполните запрос, выбрав различное количество DimCourseID из FactStudent, где DimCourseID <> -1, - так:

select count(distinct DimCourseID)
from   FactStudent
where  DimCourseID <> -1
...