Courseiva
Model the datamediumMultiple ChoiceObjective-mapped

PL-300 Model the data Practice Question

You are designing a Power BI model that includes a fact table with sales data and a dimension table for customers. Each customer can have multiple addresses, but you only need the primary address for analysis. The source system has a 'CustomerAddress' table with a 'IsPrimary' flag. What is the best approach to bring this into the model?

⚠ Common exam trap

Many exam-takers choose Option B, thinking that importing the full table and using a relationship is simpler, but they overlook the need to enforce a single primary address per customer, which requires additional filtering logic that complicates the model and degrades performance.

Answer choices

Why each option matters

Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.

Correct answer & explanation

In Power Query, filter the CustomerAddress table to only include rows where IsPrimary = True, then merge with Customer.

It uses Power Query to filter the CustomerAddress table to only primary addresses before merging with the Customer dimension. This ensures that only the necessary rows are imported into the model, reducing data volume and avoiding complex DAX or relationship overhead. The result is a clean, single-row-per-customer dimension that directly supports analysis without runtime filtering.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • Use a DAX measure to filter the address table dynamically.

    Why it's wrong here

    A DAX measure only evaluates within the filter context of a visual or calculation and cannot remove rows from an imported table during refresh or modeling. It cannot enforce that the CustomerAddress table serves as a one-row-per-customer dimension, and any measure-generated result would still leave the full table in the model, preserving fan-out and storage waste. Row-level transformations belong in Power Query, not measures.

  • Import the entire CustomerAddress table and create an active relationship on the CustomerID column.

    Why it's wrong here

    Importing every address row and creating an active relationship on CustomerID will match a fact row to all of that customer's addresses, causing row multiplication and incorrect aggregations when addresses are not filtered. This also loads non-primary addresses into the model, increasing memory and potentially creating ambiguous filter propagation. A relationship alone cannot guarantee a single primary address; the data must be reduced before the relationship is created.

  • In Power Query, filter the CustomerAddress table to only include rows where IsPrimary = True, then merge with Customer.

    Why this is correct

    Filtering CustomerAddress to IsPrimary = True in Power Query before merging into Customer loads only one address per customer, eliminating fan-out and reducing model size. The merge creates a clean dimension table with the primary address attributes, allowing a single active relationship from the fact table to each customer's primary location. This ETL approach minimizes storage and prevents the need for complex DAX or inactive-relationship tricks.

  • Create a calculated table using SUMMARIZE to get the primary address per customer.

    Why it's wrong here

    Creating a calculated table with SUMMARIZE is evaluated at report load time by the DAX engine, and for large tables it can generate heavy query plans and increase refresh duration without adding functional value. It also still stores a separate table in the model, duplicating data, whereas Power Query filtering avoids loading unwanted rows entirely. The preferred pattern is to perform such one-row-per-customer reductions during data transformation, not as a downstream DAX dependency.

About these practice questions

Courseiva writes every PL-300 question from scratch — 217 in total, each with an explanation and a wrong-answer breakdown. None are copied from real exams or dumps. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

JA

Written by Johnson Ajibi, MSc IT Security

Senior Network & Security Engineer · founder of Courseiva

This PL-300 practice question is part of Courseiva's free Microsoft certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the PL-300 exam.