The ultimate Fabric, Power BI, SQL, and AI community-led learning event. Save €200 with code FABCOMM.
Get registeredEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends September 15. Request your voucher.
I would like to create a Decomposition Tree like in the diagram below which shows how different users navigate through a website.
I have dimension tables called dim_webpagejourney, dim_webpagecategories and dim_userlocation and a fact table called fact_webpagejourney as shown below. I want to know how I can create the above decomposition tree using these tables. Also in the dashboard I want to have separate filters for the web page categories as shown in the image above which corresponds to each PageViewOrderRank. If I need to restructure my dim and fact tables to achieve this, how can I do this?
Note: The PageViewOrderRank field corresponds to the order in which a user has viewed the webpages e.g. 1 is the 1st page viewed, 2 is the 2nd page viewed etc.
Many thanks for the help in advance.
dim_webpagejourney:
UserID | WebPageCategoryID | UserLocationID | PageViewOrderRank |
1 | 3 | 4 | 1 |
2 | 2 | 5 | 1 |
2 | 1 | 5 | 2 |
3 | 5 | 5 | 1 |
4 | 5 | 5 | 1 |
5 | 7 | 4 | 1 |
5 | 1 | 4 | 2 |
5 | 2 | 4 | 3 |
5 | 1 | 4 | 4 |
5 | 6 | 4 | 5 |
6 | 5 | 2 | 1 |
7 | 3 | 1 | 1 |
8 | 12 | 3 | 1 |
8 | 8 | 3 | 2 |
8 | 8 | 3 | 3 |
9 | 3 | 3 | 1 |
9 | 1 | 3 | 2 |
9 | 3 | 3 | 3 |
9 | 2 | 3 | 4 |
9 | 2 | 3 | 5 |
dim_webpagecategories :
WebpageCategoryID | WebpageCategoryName |
1 | Homepage |
2 | Company Policies |
3 | Contact Us |
4 | History |
5 | FAQ |
6 | Merchandise Shop |
7 | Home Goods |
8 | Bathroom Products |
9 | Garden Tools |
10 | Clothing |
11 | Shoes and Accessories |
12 | Refunds |
dim_userlocation:
UserLocationID | Location |
1 | UK |
2 | Spain |
3 | USA |
4 | Germany |
5 | South Africa |
fact_webpagejourney:
DateID | Timestamp | UserID | Count_of_Views |
20240522 | 17:59:37 | 1 | 1 |
20240717 | 06:32:09 | 2 | 1 |
20240717 | 06:33:36 | 2 | 1 |
20250414 | 16:27:03 | 3 | 1 |
20240105 | 16:34:11 | 4 | 1 |
20240104 | 07:32:29 | 5 | 1 |
20240104 | 07:34:24 | 5 | 1 |
20240104 | 07:34:48 | 5 | 1 |
20240104 | 07:36:09 | 5 | 1 |
20240104 | 07:36:39 | 5 | 1 |
20240111 | 09:23:29 | 6 | 1 |
20240102 | 13:51:07 | 7 | 1 |
20240106 | 01:45:34 | 8 | 1 |
20240106 | 01:45:49 | 8 | 1 |
20240106 | 01:47:28 | 8 | 1 |
20240102 | 19:06:53 | 9 | 1 |
20240102 | 19:07:54 | 9 | 1 |
20240102 | 19:08:32 | 9 | 1 |
20240102 | 19:08:47 | 9 | 1 |
20240102 | 19:11:38 | 9 | 1 |
Solved! Go to Solution.
If I understood well your request, you need to follow these steps :
Power BI's native "Decomposition Tree" isn't suitable for sequential flows. You'll need a Sankey diagram custom visual.
Distinct User Count = DISTINCTCOUNT(UserJourneyPaths[UserID])
You want separate filters for each page rank's category, along with a global location filter.
You have a few options to achieve this filtering:
Recommended: Leveraging Sankey Interactivity (Simpler & More Intuitive)
Alternative: Multiple Slicers for Each Rank's Category (More Direct Control)
By completing these steps, you should be able to have the desired tree to monitor websites navigation.
If I understood well your request, you need to follow these steps :
Power BI's native "Decomposition Tree" isn't suitable for sequential flows. You'll need a Sankey diagram custom visual.
Distinct User Count = DISTINCTCOUNT(UserJourneyPaths[UserID])
You want separate filters for each page rank's category, along with a global location filter.
You have a few options to achieve this filtering:
Recommended: Leveraging Sankey Interactivity (Simpler & More Intuitive)
Alternative: Multiple Slicers for Each Rank's Category (More Direct Control)
By completing these steps, you should be able to have the desired tree to monitor websites navigation.
Thank-you for the advice, that's helpful feedback.
User | Count |
---|---|
69 | |
68 | |
65 | |
54 | |
28 |
User | Count |
---|---|
112 | |
82 | |
65 | |
48 | |
43 |