Forum Discussion
Add List.Max within Group
- 5 years ago
Hi soni27
You can first group by column NS_DOC_NO and get all rows into a table column. Then filter the table column with below method in images. I add two custom columns to get the filtered tables. At last, keep the last filtered table column and remove other columns. Expand the filtered table column to get the rows you want.
Download the attachment for details.
Below are M codes in Advanced editor.
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("jY7BCsIwDIbfpeeltM3arsfhpArajjm8jDEGDjyPIT6+cYIDL/by50/IB1/XsXAZqrgbQmQZO4/Palwmas30iPNtmqnG5U6zzzrWHqBsWsAK/D6AP12hPtbgSxBCSPrMsSgcN9o4WozUlDIRdNZxVIgraCgxFUTLcyv0F9R/QfVRdT+qKhF0xaaqxPuUCtpNdQUN6/sX", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"(blank)" = _t, #"(blank).1" = _t, #"(blank).2" = _t, Column1 = _t]), #"Promoted Headers" = Table.PromoteHeaders(Source, [PromoteAllScalars=true]), #"Changed Type1" = Table.TransformColumnTypes(#"Promoted Headers",{{"NS_DOC_NO", type text}, {"MaxDate", type number}, {"RevOrder", Int64.Type}}), #"Grouped Rows" = Table.Group(#"Changed Type1", {"NS_DOC_NO"}, {{"All", each _, type table [NS_DOC_NO=nullable text, MaxDate=nullable number, RevOrder=nullable number, Other=nullable text]}}), #"Added Custom1" = Table.AddColumn(#"Grouped Rows", "filter1", each let _maxRevOrder = List.Max([All][RevOrder]) in Table.SelectRows([All], each [RevOrder] = _maxRevOrder)), #"Added Custom" = Table.AddColumn(#"Added Custom1", "filter2", each let _maxDate = List.Max([filter1][MaxDate]) in Table.SelectRows([filter1], each [MaxDate] = _maxDate)), #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"All", "filter1"}), #"Expanded filter2" = Table.ExpandTableColumn(#"Removed Columns", "filter2", {"MaxDate", "RevOrder", "Other"}, {"MaxDate", "RevOrder", "Other"}) in #"Expanded filter2"Regards,
Community Support Team _ Jing
If this post helps, please Accept it as the solution to help other members find it.
I would use the actual Group function in the GUI, under the Transform Tab. Group by NS_DOC_NO, and then choose Max as the aggregations for MaxDate and RevOrder.
--Nate
- soni275 years agoHelper I
Thanks for your reply dear
My Idea is to get the Max of MaxDate and Get Max of RevOrder and the use Table.Select rows function to get the complete row within group
The reason is there are any columns in the data, and I wanted to select the row that has Max of RevOrder and Max of MaxDate
Please assist me to write M Code for that