带有FILTERing -1 ID的DISTINCTCOUNT

时间:2010-10-27 09:57:56

标签: sql filter count aggregate sum

请耐心等待我,因为我是SSAS / MDX的新手。我想在我的事实表的ID列上测量DISTINCTCOUNT,但在过滤-1即未知ID之后。我也喜欢切片/骰子。 这是我的表格

    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。 我的预期结果(不考虑年份)是:

学生姓名课程计数

Joe 2(而不是3) 添0(而不是1) 保罗1 Zina 0(而不是1)

如果只做不同的计数,它应该给我3而不是4。

再次感谢您的帮助,我们非常感谢。

此致

1 个答案:

答案 0 :(得分:0)

为了从FactStudent获得DimCourseID的不同计数,排除DimCourseID值为-1,运行从FactStudent中选择DimCourseID的不同计数的查询,其中DimCourseID<> -1 - 像这样:

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