Fix Costs_v1_2 duplicate records from Services table join #1907
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🛠️ Description
The
Costs_v1_2()function produced duplicate cost records when the Services table contained multiple entries for the samex_ResourceType, causing inflated cost values in v12 dashboards compared to v11.Root cause:
join kind=leftouterwithout deduplication created N output rows for each input row when Services had N matching entries.Fix: Changed to
lookup kind=leftouterwithsummarize take_any()to ensure 1:1 enrichment:This pattern already exists in
CommitmentDiscountUsage_v1_2()line 27.📷 Screenshots
The issue manifested when resource types like
microsoft.security/pricingsappeared multiple times in Services with different subcategories (Application Platforms, Containers, Security Posture Management, Virtual Machines), multiplying cost records 5x.📋 Checklist
🔬 How did you test this change?
🙋♀️ Do any of the following that apply?
📑 Did you update
docs/changelog.md?📖 Did you update documentation?
Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.