Forum Discussion
Ranking measure with Table variable
- 5 years ago
Hi sqlguru448 ,
Be aware that making a summarizaition of a full table will bring for sure performance issues, in your case you are using the FACT table that I assume have a huge number of data so be aware of that.
Try the following code:
Measure = var temp_table = FILTER ( SUMMARIZE ( ALLSELECTED ( Customer[Name] ); Customer[Name]; "Total_Sales"; [Sales Amount] ); [Sales Amount] > 0 ) var Ranking = RANKX(temp_table; [Sales Amount]) RETURN RankingThen filter out all rankings above 10.
Hi
v-lili6-msft The above DAX gives performance issues as posted in my earlier comments as my real data is in millions, I am adding other dimension columns to the table which is causing the issue. Below is the expected data result for rank, apart from this I have to add other columns from different dimensions.
I am trying to fix it by writing below DAX, this works fine in SSAS dax query but not in Power BI desktop.
The power bi desktop gives rank as all 1's
Hi sqlguru448 ,
Be aware that making a summarizaition of a full table will bring for sure performance issues, in your case you are using the FACT table that I assume have a huge number of data so be aware of that.
Try the following code:
Measure =
var temp_table =
FILTER (
SUMMARIZE (
ALLSELECTED ( Customer[Name] );
Customer[Name];
"Total_Sales"; [Sales Amount]
);
[Sales Amount] > 0
)
var Ranking = RANKX(temp_table; [Sales Amount])
RETURN
Ranking
Then filter out all rankings above 10.
- sqlguru4485 years agoHelper III
Thank you this gave me an idea to modify my dax.
Measure = var _top10 =FILTER(SUMMARIZE(ALLSELECTED('Fact Sales'), Product[Product_Name], Product_Subcategory[Product_subcategory_name, location[state] , "Sales", [Total Sales]), [Total Sales] > 0 )RETURN RANKX(_top10,[Total Sales])Thank you for your help MFelix - MFelix5 years agoSuper User
Hi sqlguru448 ,
Glad I could point out in the correct direction, I made the measure with only a few lines of data so it could work incorrectly on a bigger scale.
Always remenber that FILTERING a full table will have a very big impact on performance, you should always filter on the minimum amount of columns needed for your calculations and your context needs.