I have a fact table which is linked to many dimension tables and fact table itself contain few dimension fields. My requirement is to create a aggregate table based on this fact table and aggregated(group by) based on only dimension fields in the fact table. Then linking the new and existing fact table with a concatenated key(all the group by fields)
Is my approach correct? I read that we should have a single fact table, so not sure what i am doing is correct?
I now have a doubt that suppose if user select on a field in dimension table that is linked to main fact table, will the filteration correctly pass to the aggregated fact table?
I think it is OK as long as the fields linking the two tables will yield a correct view on selection.
Typically, if the only reason you want to have the second fact table is just to perform aggregation, avoid it. Since aggregations on the chart are way faster than aggregation at the script level.
On the other hand, if the 2 fact tables contain different types of data, that is best left un-merged, then link them via the correct set of fields, ensure that the link is maintained as a autohash or autonumber.