Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

View all the Fabric Data Days sessions on demand. View schedule

Reply
hansei
Helper V
Helper V

Curious about Table.Group aggregatedColumns function

If you group a table in the GUI

hansei_0-1656020931172.png


1/ the generated code appears as such

 

Table.Group(#"Kept First Rows", {"Claim ID"}, {{"MinPrice", each List.Min([Contract Price]), type nullable number}})

 


2/ even though the argument to the 'each' function is a table, you can rewrite the function like the following and it will always work

 

Table.Group(#"Kept First Rows", {"Claim ID"}, {{"MinPrice", each List.Min(Record.Field(_, "Contract Price")), type nullable number}})

 

 

3/ however, rewriting that same code inside a let/in block raises an error

 

Table.Group(#"Kept First Rows", {"Claim ID"}, {{"MinPrice", each let n = List.Min(Record.Field(_, "Contract Price")) in n, type nullable number}})

Expression.Error: We cannot convert a value of type Table to type Record.

 


4/ to work inside the let/in block, you need to change from Record.Field to Table.Column like this

 

Table.Group(#"Kept First Rows", {"Claim ID"}, {{"MinPrice", each let n = List.Min(Table.Column(_, "Contract Price")) in n, type nullable number}})

 


I get why #3 generates an error. I'm wondering why #2 does not...

1 ACCEPTED SOLUTION
Anonymous
Not applicable

Hi @hansei,

I think this should be related to the let-in structure and _ operator.
In the 'group' function, the _ operator after 'each' keyword mapping to the table type, and can be recognized and evaluated after each keyword but these operations seem not processed in the nested let-in structure. (perhaps related to Lazy and eager evaluation)

Evaluation model - PowerQuery M | Microsoft Docs

For your scenario, you can try to use the following formula to fix this issue:

Table.Group(#"Kept First Rows", {"Claim ID"}, {{"MinPrice", each let n = List.Min(_[Contract Price]) in n,  type nullable number}})

Regards,

Xiaoxin Sheng

View solution in original post

1 REPLY 1
Anonymous
Not applicable

Hi @hansei,

I think this should be related to the let-in structure and _ operator.
In the 'group' function, the _ operator after 'each' keyword mapping to the table type, and can be recognized and evaluated after each keyword but these operations seem not processed in the nested let-in structure. (perhaps related to Lazy and eager evaluation)

Evaluation model - PowerQuery M | Microsoft Docs

For your scenario, you can try to use the following formula to fix this issue:

Table.Group(#"Kept First Rows", {"Claim ID"}, {{"MinPrice", each let n = List.Min(_[Contract Price]) in n,  type nullable number}})

Regards,

Xiaoxin Sheng

Helpful resources

Announcements
November Power BI Update Carousel

Power BI Monthly Update - November 2025

Check out the November 2025 Power BI update to learn about new features.

Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Solution Authors
Top Kudoed Authors