PL-300 Model the data Practice Question
You are building a data model for a retail company. The 'Sales' fact table has a column 'Discount' that is a percentage (0 to 1). You create a measure 'Total Discount Amount' = SUM(Sales[Discount]) * SUM(Sales[Quantity]) * SUM(Sales[UnitPrice]). However, the measure returns incorrect results when multiple discount percentages exist in the same filter context. What is the issue?
⚠ Common exam trap
Test-takers frequently assume SUM works correctly for all multiplicative measures, overlooking that SUM aggregates before multiplication, while SUMX is required for row-by-row calculations in DAX.
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
✓
The measure is performing aggregations at the wrong granularity; it should use SUMX to iterate over each row.
The measure uses SUM on each column individually, which aggregates all values in the filter context before multiplying. When multiple discount percentages exist, this incorrectly multiplies the total of all discounts by the total of all quantities and total of all unit prices, rather than computing discount per row. The correct approach is to use SUMX to iterate over each row of the Sales table, calculating Discount * Quantity * UnitPrice per row and then summing those row-level results, ensuring accurate granularity.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
The measure contains a circular dependency.
Why it's wrong here
A circular dependency occurs when a measure indirectly references itself, creating an infinite calculation loop. In this scenario, the measure uses only direct column references from a single table, so DAX can resolve the calculation without recursion. Thus, circular dependency is not the root cause of the incorrect result.
- ✓
The measure is performing aggregations at the wrong granularity; it should use SUMX to iterate over each row.
Why this is correct
The measure is performing aggregations at the wrong granularity; it should use SUMX to iterate over each row. Using a simple SUM for the revenue calculation multiplies the total sales by the total discount rate, rather than computing the discounted amount for each individual transaction. SUMX creates a row context, evaluates the expression for every row (e.g., Sales[SalesAmount] * (1 - Sales[Discount])), and then sums those intermediate results, ensuring accurate row-level arithmetic before aggregation.
- ✗
The measure is referencing columns from different tables without proper relationships.
Why it's wrong here
Referencing columns from different tables without proper relationships could cause ambiguous or missing values due to cross-filtering issues. Here, all columns originate from the same table (likely Sales), so the relationships between tables are not involved in this calculation. Therefore, this option incorrectly identifies a relationship problem that does not exist in this data model.
- ✗
The Discount column should be of type Decimal instead of Percentage.
Why it's wrong here
While the Discount column's data type (e.g., Percentage vs. Decimal) affects how the value is displayed, both types store numbers as decimal fractions internally. Changing the data type would not alter the fundamental aggregation logic, because the problem is not about precision or display formatting but about the lack of row-by-row evaluation. The real culprit is the use of an aggregate function without iteration, not the column data type.
Go deeper
Related to this question
About these practice questions
This PL-300 question is part of Courseiva's 524-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam dumps. Learn why practice questions differ from exam dumps →
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.