Categories
- All Categories
- 127 Oracle Analytics News
- 23 Oracle Analytics Videos
- 14.5K Oracle Analytics Forums
- 5.5K Oracle Analytics Idea Labs
- Oracle Analytics User Groups
- 47 Oracle Analytics Trainings
- 7 Oracle Analytics Data Visualizations Challenge
- 4 Oracle Analytics Career
- 8 Oracle Analytics Industry
- Find Partners
- For Partners
Complicated aggregation logic in OBIEE

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
Answers
-
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?
0 -
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.
0 -
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
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
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
0