Oracle Analytics Cloud and Server

Welcome to the Oracle Analytics Community: Please complete your User Profile and upload your Profile Picture

Complicated aggregation logic in OBIEE

Received Response
11
Views
3
Comments
Rank 5 - Community Champion

Hi, I'm running in to an issue with OBIEE that I've never hit before. We're modelling classroom fill rates for classes at OSU. There are three main metrics we deal with - capacity (i.e. how many max people can be in a class), enrollment (how many people actually are in the class), and "open seats" (capacity - enrollment).

For 95% of the classes, there is no issue an everything works fine.

However, about 5% - 7% of our classes are "cross listed" - which means that two or more classes are taught by the same teacher at the same place at the same time. There are two main reasons we do this - classes that are offered to both undergrad and graduate students, and classes that cross colleges (for instance, some classes could cross engineering and medicine).

In those cases, we create a "cross listed class" which is essentially a hierarchy parent of the individual classes that roll up to it. But here's the rub - the capacity of the cross listed class may NOT be equal to the sum of the capacities of the classes beneath it - it can be completely different. For example, class A could have a capacity of 10, class B could have a capacity of 10, cross listed class AB may have a capacity of only 15 and not 20. This logically means "we can accept up to 10 people from either class A or class B, but only 15 people in total).

I'm having a VERY difficult time understanding how to implement this in OBIEE. I'm currently working on the idea having fact tables at both the "class" and "cross listed class" levels, but when I do that, I can't get totals to work correctly. In the above example with classes A and B, I'd expect a report to look like this:

Class A capacity     10

Class B capacity     10

Total capacity          15

Has anyone run in to issues like this before?

Thanks,

Scott

Welcome!

It looks like you're new here. Sign in or register to get started.

Answers

  • Rank 3 - Community Apprentice

    Hi,

    Just a quick question: How do you actually work out the cross capacity? Is there a set formula for the cross listed classes i.e. is it always

    (Class A/2) + Class B

    OR

    Class A + (Class B/2)

    OR is it an inexact science whereby it could be

    Class A 10

    Class B 10

    total 17?

  • Rank 10 - Analytics Guru

    Hi Scott,

    I see two options: model these two cases independently of one another (so class and cross-listed class would be distinct facts without the possibility to go further down from cross-listed) or introduce - if you're at all able to do that - weighting tables where you'll apply weights for the classes so that 10 * 0.75 + 10 * 0.75 = 15. Kind of like you're doing workforce analyses and one of your 100% headcounts work 60% for dept A, 30% for dept B and 10% for dept C.

  • Rank 5 - Community Champion

    Hi everyone, just to clarify, all of the following scenarios are legal:

    1) Class A capacity = 10, class B capacity = 10, cross listed class capacity = 20 (i.e. "you can have up to exactly 10 people from class A and class B")

    2) Class A capacity = 10, class B capacity = 10, cross listed class capacity = 15 (i.e. you can have up to 15 people in the cross listed section, and a max of only 10 from either A or B)

    3) Class A capacity = 10, class B capacity = 10, cross listed class capacity = 10 (i.e. you can only have 10 people in the cross listed class, we don't care how many come from A or B)

    Given this, there is no "mathematical" solution to the problem...it really needs to be "when displaying cross listed classes pull from a cross listed class fact, when displaying at class level pull from the class fact". I'm currently working on building a hierarchy, where cross listed class drills to the underlying classes (and in cases where the class stands by itself it gets a "dummy" cross listed class), and then using the priority flag in the RPD to try to force it to pull from the right levels. This is (kinda) working, but aggregations still don't seem correct - if I drill down to the class level, the total always reflects the sum of the classes, and "skips" pulling from the cross listed class level.

    I'll post an update if I find anything that works (well). Appreciate the help Christian and Dan.

    Thanks,

    Scott

Welcome!

It looks like you're new here. Sign in or register to get started.