Dylan’s BI Study Notes

My notes about Business Intelligence, Data Warehousing, OLAP, and Master Data Management

  • About me

    I am a senior development manager working for Oracle BI Applications development. My job involves the common area, including data warehouse modeling and dimension conformance. I was involved in Oracle E-Business Suite Financial Architecture, Oracle Customer Hub, and Oracle Fusion Projects product development in the past. Disclaimer: Opinions expressed in this blog are entirely my own and do not reflect the position of Oracle.
  • Blog Stats

    • 125,389 hits
  • My Tags

Factless Fact Table

A factless fact table is a table that contains nothing but dimensional keys.  Ralph Kimball’s earlier article is still the best source to learn this.

There are two types of factless tables.  One is for capturing the event.  An event establishes the relationship among the dimension members from various dimension but there is no measured value.  The existence of the relationship itself is the fact.

This type of fact table itself can be used to generate the useful reports.  You can count the number of occurrences  with various criteria.  For example, you can have a factless fact table to capture the student attendance (the example used by Ralph).  The following questions can be answered:

  • Which class has the least attendance?
  • Which teachers taugh the most students?
  • What is the average number of attendance of a given course?

All the queries are based on the COUNT() with the GROUP BY queries.  I think that the interesting metrics are the nested GROUP BY so you can first count and then apply other aggregate functions such as AVERAGE, MAX, MIX.

The other type of factless table is  called Coverage table by Ralph.  It is used to support negative analysis report. For example a Store that did not sell a product for a given period.  To produce such report, you need to have a fact table to capture all the possible combinations.  You can then figure out what is missing.