What the DP-600 exam covers
- Maintain a data analytics solution214 questions
- Prepare data362 questions
- Implement and manage semantic models214 questions
Free DP-600 practice test questions
A sample of 10 questions with answers and explanations. A free account includes a fixed set of 20 practice questions for this exam, retryable anytime. Paid access unlocks the full 790-question bank.
-
You have a Microsoft Fabric workspace at Contoso. A business user must be able to view existing Power BI reports in the workspace but must not create, edit, or delete any items. You want to follow the principle of least privilege. Which workspace role should you assign?
- AViewerCorrect
- BContributor
- CMember
- DAdmin
✓ Correct answer: AThe Viewer role is correct because it grants strictly read-only access to workspace content, letting Contoso's business user open and interact with existing Power BI reports and dashboards without any ability to create, modify, or delete items. This maps directly to the principle of least privilege: the role's rights should match exactly what the job requires, and viewing reports requires no edit capability at all. Contributor, Member, and Admin each add layers of edit or management rights beyond that need, from creating and deleting content up to full workspace administration, so assigning any of them would over-provision access for a pure consumer. The takeaway is that whenever a user only needs to look at existing Power BI content, Viewer is the correct starting point, and any broader role should be justified by an actual editing or management requirement.
Why the other options are wrong- BContributor can create, edit, and delete items such as reports and datasets in the workspace, which grants far more than the read-only access this report consumer needs.
- CMember includes everything Contributor can do plus adding users and resharing items, layering on user-management rights that a pure report viewer has no reason to hold.
- DAdmin has full control of the workspace, including deleting it entirely and managing all other administrators, which is drastically more than viewing reports requires.
-
In a warehouse at Blue Yonder, a group is a member of one role that is granted SELECT on a table and another role that is denied SELECT on the same table. What is the effective access?
- ANo access, because DENY overrides GRANTCorrect
- BFull access, because GRANT overrides DENY
- CFull access, because a DENY on one role does not affect a GRANT that comes from a different role
- DAccess decided by the order the statements ran
✓ Correct answer: AThe effective access is none, because when a principal's permissions are combined from multiple role memberships, a DENY at a given scope always takes precedence over any GRANT at that same or a broader scope. The concept is permission precedence in T-SQL security: DENY is designed as an override you can use to carve out an exception for a specific group even when another role would otherwise allow access, and the engine applies it deterministically regardless of which statement ran first or which role was assigned more recently. Takeaway: whenever a DENY exists anywhere in a principal's role chain for an object, it wins.
Why the other options are wrong- BGRANT does not take priority over DENY when both apply to the same principal; the deny is what determines the outcome.
- CA DENY applies to the principal no matter which role carries it, so permissions from every role membership are combined and the DENY still overrides the GRANT.
- DThe order in which the GRANT and DENY statements were executed does not matter; DENY consistently overrides GRANT regardless of sequence.
-
A developer made several experimental edits in a Git-connected workspace but decides not to keep them, and wants the affected items restored to match the last committed version in the branch. What is the simplest way to do this?
- ADelete each modified item and manually rebuild it from scratch.
- BDisconnect the workspace from Git and then reconnect it later.
- CCommit the changes and then create a manual revert commit to undo them all.
- DUse Undo in the source control panel to discard the uncommitted changes.Correct
✓ Correct answer: DThe Undo action in the source control panel reverts the selected uncommitted items in the workspace back to the last committed state recorded in the branch, discarding the experimental edits in a single step. This is the simplest and safest way to abandon changes that were never meant to be kept, since it requires no manual rebuilding and leaves no unwanted commit in the branch's history. Deleting and rebuilding items by hand is unnecessary and risks introducing new mistakes, disconnecting from Git does not restore anything, and committing the unwanted changes only to revert them afterward creates extra history for no benefit.
Why the other options are wrong- ADeleting each modified item and rebuilding it from scratch is far more work than necessary and risks introducing new errors.
- BDisconnecting the workspace from Git does not restore any item to its last committed version; it simply removes the Git link.
- CCommitting the unwanted changes and then creating a manual revert commit is a slower, messier path than simply undoing the uncommitted edits directly.
-
In a Dataflow Gen2 at Northwind, you must combine a customers query and an orders query into one result by matching on CustomerID, keeping only rows that exist in both. Which Power Query operation should you use?
- AAppend queries to stack the customers and orders rows together.
- BGroup by CustomerID to aggregate the combined result rows.
- CReference the customers query from inside the orders query.
- DMerge queries with an inner join on the CustomerID column.Correct
✓ Correct answer: DMerge queries joins two queries on one or more key columns, and choosing the inner join kind returns only the rows that have a match in both inputs, the SQL-equivalent inner join Northwind needs to combine customers and orders on CustomerID while keeping just the matching rows. Merge is the only Power Query operation that performs a keyed join between two separate queries; the others stack rows, summarize within a single table, or chain one query off another. For a keyed, matches-only combination of two tables, Merge with an inner join is the tool.
Why the other options are wrong- AAppend queries stacks rows from queries with matching columns; it does not join two queries on a key column at all.
- BGroup By aggregates rows within one table into summaries; it does not combine two separate queries on a shared key.
- CReference reuses a query's output as a new query's starting point; it performs no join between customers and orders.
-
You join FactSales to DimPromotion in the Relecloud Retail warehouse but must keep sales rows that have no matching promotion. Which join should you use?
- AINNER JOIN between the two tables
- BLEFT OUTER JOIN from FactSales to DimPromotionCorrect
- CCROSS JOIN of both tables
- DRIGHT OUTER JOIN from FactSales to DimPromotion
✓ Correct answer: BA LEFT OUTER JOIN from FactSales to DimPromotion is correct because it preserves every row from the left table, FactSales, regardless of whether a matching promotion exists, filling the promotion columns with NULL when there is no match. The key concept is choosing the join type by which side must be fully preserved: here the requirement to keep unmatched sales rows means FactSales must be the preserved left side of the join. Takeaway: to keep all rows from one side regardless of a match, use an outer join on that side.
Why the other options are wrong- AAn INNER JOIN drops any sales row that has no matching promotion, which loses the required rows.
- CA CROSS JOIN produces every combination of both tables and ignores the join key entirely.
- DA RIGHT OUTER JOIN preserves all promotion rows instead of all sales rows, the reverse of what is needed.
-
You have a Fabric warehouse table named Survey with a Rating column that contains some NULL values. You need the average of Rating that treats every NULL as 0. Which expression should you use?
- AAVG(COALESCE(Rating, 0))Correct
- BAVG(Rating)
- CCOALESCE(AVG(Rating), 0)
- DAVG(ISNULL(Rating))
✓ Correct answer: AWrapping Rating in COALESCE(Rating, 0) substitutes 0 for every null before AVG ever sees the column, so those originally-null rows are now included in both the sum and the row count that AVG divides by, and the average reflects them as zero rather than skipping them. The key concept is that AVG, like the other aggregate functions, ignores NULL entirely by default, in the running sum and in the denominator alike. Making nulls count as zero therefore requires replacing them before aggregation rather than repairing the result afterward.
Why the other options are wrong- BAVG(Rating) skips nulls entirely, so it does not treat them as 0.
- CApplying COALESCE outside AVG only replaces the final result when it is null, not each missing rating.
- DISNULL requires a replacement value as its second argument, so this call is invalid.
-
In the visual query editor you have a Customers table and an Orders table. You need to combine them so that each order also shows its customer's country. Which transform should you apply?
- AMerge queriesCorrect
- BAppend queries
- CGroup by
- DPivot column
✓ Correct answer: AMerge queries is correct because it is the visual query editor's join transform: it matches rows between two tables on one or more key columns and lets you bring additional columns from the matched table into the result, which is exactly how each order would gain its customer's country from the Customers table. This is the graphical equivalent of a SQL join and is the only listed transform that combines columns from two separate tables based on matching keys. When a requirement is to add a related table's column onto another table's rows, Merge queries is the transform to reach for.
Why the other options are wrong- BAppend queries stacks the rows of two similarly structured tables end to end, like a UNION, and does not add a matched column from another table.
- CGroup by aggregates and summarizes rows within a single table; it does not combine two separate tables at all.
- DPivot column reshapes distinct row values into new columns and has nothing to do with joining two tables on a key.
-
A security review at Woodgrove Bank flags that bidirectional cross-filtering combined with row-level security can expose data or slow queries. Which recommendation follows from this finding?
- AEnable bidirectional filtering on every relationship so that RLS stays consistent everywhere.
- BUse single-direction relationships and apply CROSSFILTER only in measures that need it.Correct
- CReplace all one-to-many relationships with many-to-many cardinality across the whole model.
- DStore the dimension tables in DirectQuery mode so RLS evaluation is bypassed entirely.
✓ Correct answer: BBidirectional cross-filtering combined with row-level security is risky because RLS filters, which are applied as filters on a table, can travel across a bidirectional relationship in directions the designer did not intend, potentially exposing rows a user's role should not see, and every bidirectional relationship also adds evaluation overhead to every query that touches it. The safe default is to keep relationships single-direction and, when one specific measure genuinely needs the fact table to filter a dimension, wrap that measure's expression in CALCULATE with CROSSFILTER set to both just for that evaluation. This keeps the RLS-sensitive behavior scoped and predictable instead of applying it, and its risks, across the entire model.
Why the other options are wrong- AEnabling bidirectional filtering on every relationship multiplies the exact RLS-leakage and performance risks the security review flagged, rather than resolving them.
- CMany-to-many cardinality creates limited relationships with their own nuances and does not address the RLS concern.
- DSwitching dimension tables to DirectQuery storage does not bypass row-level security in any way; RLS still applies and the exposure risk remains unresolved.
-
Business users want one column chart where they can switch the axis between Product, Region, and Salesperson, and separately switch the value between Sales, Profit, and Units, all from slicers. Which feature should you implement?
- AField parameters, one for the axis fields and one for the value measuresCorrect
- BCalculation groups, one for the axis fields and one for the value measures
- CA composite model that aggregates each field combination
- DRow-level security roles that expose different fields per user
✓ Correct answer: ALetting business users switch the chart's axis among Product, Region, and Salesperson, and separately switch the value among Sales, Profit, and Units, requires exposing two independent, user-selectable lists of fields, exactly what field parameters are built for. Creating one field parameter containing the three candidate axis columns and a second field parameter containing the three candidate value measures lets each be placed on its own slicer, so a user's selection in either slicer changes only that part of the chart, axis or value, independently of the other. This delivers the requested interactivity without writing any custom DAX logic beyond defining the two parameter tables. Takeaway: use one field parameter per independently switchable role in a visual.
Why the other options are wrong- BCalculation groups apply reusable calculation logic, like YTD or currency conversion, to an existing measure; they do not let a user swap which dimension appears on an axis.
- CA composite model with pre-aggregated combinations addresses query performance at scale, not the interactive ability for users to pick fields via slicers.
- DRow-level security controls which rows of data a user can see based on their identity; it does not expose switchable axis or value fields to every user.
-
Analysts at Fabrikam want to discover data that already exists in the tenant before building anything new. Which two statements about the OneLake catalog and the Real-Time hub are correct? (Choose two.)
- AThe OneLake catalog lets users browse and search Fabric data items they can access across workspaces.Correct
- BThe Real-Time hub is a single place to discover and subscribe to streaming sources and events.Correct
- CThe OneLake catalog copies every discovered table into the current workspace before it can be viewed.
- DThe Real-Time hub is the tool used to author DAX measures for an import semantic model.
- EThe OneLake catalog can only list items inside one workspace and cannot search across workspaces.
✓ Correct answer: A, BThe OneLake catalog gives a searchable, cross-workspace view of the lakehouses, warehouses, semantic models, and other items a user is permitted to see, without moving any data. The Real-Time hub complements it as the central place to find, connect to, and subscribe to streaming and event data sources in Fabric.
Why the other options are wrong- CDiscovery in the catalog references items in place; it does not copy tables into the current workspace to display them.
- DDAX measures are authored in the model or the DAX query view, not in the Real-Time hub, which is for streaming discovery.
- EThe catalog is explicitly cross-workspace and searchable, so limiting it to a single workspace is incorrect.
Who this DP-600 practice exam is for
This practice set is for anyone preparing for the DP-600: Microsoft Fabric Analytics Engineer Associate exam at the intermediate level - from first-time candidates building a foundation to experienced Microsoft practitioners doing a final review before test day. If you learn best by working through realistic questions and reading why each answer is right or wrong, it is built for you.
How to use this DP-600 practice exam
- Start with the free sample questions above to gauge your current baseline.
- Read the full explanation on every question, including why each wrong option is wrong.
- Track your weak domains and focus your study where you are losing the most marks.
- Once you are scoring consistently well, take a timed, full-length mock exam.
- Use your readiness score to find weak objectives and focus your study. It shows where you stand on this bank's questions, not whether you are ready to book the real DP-600 exam.
Related Microsoft resources
- DP-600 study guideKey concepts
- Microsoft practice examsAll Microsoft
- Certification pathWhere this fits
- Certification exam guides & tipsBlog
- Plans & pricingFree & paid
- How these questions are written and reviewedMethodology
- Report a problem with a questionCorrections
- DP-700 practice examRelated
- DP-750 practice examRelated
- DP-800 practice examRelated
DP-600 practice exam FAQ
How many questions are in the DP-600 practice exam on CertGrid?
CertGrid has 790 practice questions for DP-600: Microsoft Fabric Analytics Engineer Associate, covering 3 exam domains. The real DP-600 exam runs 100 min (120 min seat time), typically with 40-60 questions. Microsoft publishes 40-60 questions as a typical range across its exams and states the number varies by exam; it does not publish a count for this one. CertGrid's timed mock is a fixed 50 questions.
What is the passing score for DP-600?
The DP-600 exam passing score is 700 / 1000, and you have about 100 min to complete it. CertGrid scores your practice attempts the same way so you know when you are ready.
Are these official DP-600 exam questions?
No. CertGrid is an independent practice platform. We do not provide real or leaked exam questions. Our questions are original and designed to help you practice the concepts, scenarios, and difficulty style of the DP-600: Microsoft Fabric Analytics Engineer Associate exam.
Is there a free DP-600 practice test?
Yes. You can take a free DP-600: Microsoft Fabric Analytics Engineer Associate practice test straight away: a fixed set of 20 practice questions for this exam, retryable as often as you like, with no credit card required. You get readiness scoring and a weak-domain breakdown on those questions. Paid plans unlock the full 790-question bank, timed mock exams and full-bank domain analytics.
What CertGrid is (and is not)
CertGrid is an independent IT certification practice platform for Azure, AWS, Google, Cisco, Security, Linux, Kubernetes, Terraform, and other certification tracks. It provides objective-mapped practice questions, readiness scoring, weak-domain drills, and explanations to help learners understand what to study next.
Independent & original. CertGrid is an independent practice platform and is not affiliated with or endorsed by Microsoft. Questions are original practice items designed to mirror certification concepts and exam style. CertGrid does not provide official exam questions or braindumps.