Bird
Raised Fist0
Power BIbi_tool~10 mins

Data model best practices in Power BI - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create a relationship between two tables in Power BI.

Power BI
Model = CREATE_RELATIONSHIP('Sales'[CustomerID], [1])
Drag options to blanks, or click blank then click option'
A'Customers'[OrderID]
B'Products'[ProductID]
C'Sales'[ProductID]
D'Customers'[CustomerID]
Attempts:
3 left
💡 Hint
Common Mistakes
Choosing columns from unrelated tables.
Using columns that don't match in data type.
2fill in blank
medium

Complete the DAX formula to calculate total sales amount.

Power BI
TotalSales = SUM([1])
Drag options to blanks, or click blank then click option'
A'Sales'[SalesAmount]
B'Customers'[CustomerID]
C'Sales'[Quantity]
D'Products'[Price]
Attempts:
3 left
💡 Hint
Common Mistakes
Summing quantity instead of sales amount.
Using columns from unrelated tables.
3fill in blank
hard

Fix the error in the DAX formula to calculate average sales per customer.

Power BI
AverageSales = DIVIDE(SUM('Sales'[SalesAmount]), [1])
Drag options to blanks, or click blank then click option'
ACOUNTROWS('Products')
BCOUNT('Customers'[CustomerID])
CDISTINCTCOUNT('Sales'[CustomerID])
DSUM('Sales'[Quantity])
Attempts:
3 left
💡 Hint
Common Mistakes
Using COUNTROWS on unrelated tables.
Counting total quantity instead of customers.
4fill in blank
hard

Fill both blanks to create a calculated column that flags high sales orders.

Power BI
HighSalesFlag = IF('Sales'[SalesAmount] [1] 1000, [2], "No")
Drag options to blanks, or click blank then click option'
A>
B"Yes"
C<
D"High"
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong comparison operator.
Returning a number instead of text.
5fill in blank
hard

Fill all three blanks to create a measure that calculates sales growth percentage.

Power BI
SalesGrowth = DIVIDE(SUM('Sales'[SalesAmount]) - CALCULATE(SUM('Sales'[SalesAmount]), [1]), CALCULATE(SUM('Sales'[SalesAmount]), [2])) * 100
Drag options to blanks, or click blank then click option'
ASAMEPERIODLASTYEAR('Date'[Date])
CFILTER('Date', 'Date'[Year] = YEAR(TODAY()) - 1)
DFILTER('Date', 'Date'[Year] = YEAR(TODAY()))
Attempts:
3 left
💡 Hint
Common Mistakes
Using current year instead of last year for comparison.
Not subtracting last year's sales correctly.

Practice

(1/5)
1. What is the main reason to use a star schema in Power BI data modeling?
easy
A. It hides data from users to improve security.
B. It allows storing all data in one big table.
C. It automatically creates relationships without keys.
D. It simplifies analysis by separating facts and dimensions clearly.

Solution

  1. Step 1: Understand star schema purpose

    A star schema organizes data into fact tables (measures) and dimension tables (descriptions) for clarity.
  2. Step 2: Recognize benefits in Power BI

    This separation makes analysis easier and faster by simplifying relationships and queries.
  3. Final Answer:

    It simplifies analysis by separating facts and dimensions clearly. -> Option D
  4. Quick Check:

    Star schema = clear fact and dimension tables [OK]
Hint: Star schema means clear fact and dimension tables [OK]
Common Mistakes:
  • Thinking all data should be in one table
  • Believing relationships form without keys
  • Confusing star schema with security features
2. Which of the following is the correct way to create a one-to-many relationship in Power BI?
easy
A. Link the primary key in the dimension table to the foreign key in the fact table.
B. Link the foreign key in the dimension table to the primary key in the fact table.
C. Create a many-to-many relationship between two fact tables.
D. Use a calculated column to join unrelated tables.

Solution

  1. Step 1: Identify keys in tables

    The dimension table has a primary key; the fact table has a foreign key referencing it.
  2. Step 2: Create relationship direction

    One-to-many means one dimension row links to many fact rows, so connect primary key (dimension) to foreign key (fact).
  3. Final Answer:

    Link the primary key in the dimension table to the foreign key in the fact table. -> Option A
  4. Quick Check:

    One-to-many = primary key to foreign key [OK]
Hint: Primary key (dimension) links to foreign key (fact) [OK]
Common Mistakes:
  • Reversing keys in relationship
  • Using many-to-many where one-to-many is needed
  • Trying to join unrelated tables with calculated columns
3. Given a data model with a Sales fact table and a Product dimension table linked by ProductID, what happens if you add a relationship from Sales[ProductID] to Product[ProductID] but the Product table has duplicate ProductIDs?
medium
A. Power BI will create a one-to-many relationship and filter correctly.
B. Power BI will show an error and not allow the relationship.
C. Power BI will create a many-to-many relationship automatically.
D. Power BI will ignore duplicates and create the relationship anyway.

Solution

  1. Step 1: Understand relationship requirements

    One-to-many relationships require the 'one' side (Product) to have unique keys.
  2. Step 2: Check effect of duplicates

    Duplicates in Product[ProductID] break uniqueness, so Power BI blocks the relationship creation.
  3. Final Answer:

    Power BI will show an error and not allow the relationship. -> Option B
  4. Quick Check:

    Unique keys required on 'one' side [OK]
Hint: One side keys must be unique to create relationship [OK]
Common Mistakes:
  • Assuming duplicates are ignored
  • Expecting automatic many-to-many creation
  • Thinking relationship will still filter correctly
4. You created a relationship between Customer[CustomerID] and Sales[CustomerID], but your report shows incorrect totals. Which of the following is the most likely cause?
medium
A. The Sales table is missing CustomerID values.
B. CustomerID has duplicates in the Customer table.
C. The relationship is inactive and needs to be activated.
D. The relationship is many-to-many instead of one-to-many.

Solution

  1. Step 1: Check relationship status

    Inactive relationships do not filter data automatically, causing wrong totals.
  2. Step 2: Confirm activation needed

    Activating the relationship or using DAX USERELATIONSHIP fixes filtering issues.
  3. Final Answer:

    The relationship is inactive and needs to be activated. -> Option C
  4. Quick Check:

    Inactive relationship causes wrong totals [OK]
Hint: Inactive relationships block filtering; activate them [OK]
Common Mistakes:
  • Ignoring inactive relationship status
  • Assuming duplicates always cause wrong totals
  • Thinking missing values break relationships
5. You have a complex data model with multiple fact tables and dimension tables. To improve performance and clarity, which best practice should you apply?
hard
A. Use a star schema with clear one-to-many relationships and avoid circular dependencies.
B. Combine all tables into one large table to reduce relationships.
C. Create many-to-many relationships between all tables for flexibility.
D. Use calculated columns to join tables instead of relationships.

Solution

  1. Step 1: Identify best modeling approach

    Star schema organizes data clearly with fact and dimension tables linked by one-to-many relationships.
  2. Step 2: Avoid common pitfalls

    Combining tables or many-to-many relationships can cause confusion and slow performance; calculated columns for joins are inefficient.
  3. Final Answer:

    Use a star schema with clear one-to-many relationships and avoid circular dependencies. -> Option A
  4. Quick Check:

    Star schema + one-to-many + no circular dependencies [OK]
Hint: Star schema and one-to-many improve clarity and speed [OK]
Common Mistakes:
  • Merging all tables into one
  • Using many-to-many everywhere
  • Relying on calculated columns for joins
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard