我有两个表需要使用 ID 列进行合并。它们都有重复的值,但我只需要最大值。因此,我按降序对表进行了排序并删除了重复项。但是,合并表后,合并后的表没有收到最大值,而是返回了排序前的第一个值。
表格如下:
ID | 值1 |
---|---|
一个 | 8.7 |
一个 | 10.9 |
b | 5.2 |
丙 | 9.0 |
ID | 值2 |
---|---|
一个 | 50 |
b | 60 |
丙 | 80 |
我对表格进行了排序并删除了重复项:
ID | 值1 |
---|---|
一个 | 10.9 |
b | 5.2 |
丙 | 9.0 |
ID | 值2 |
---|---|
一个 | 50 |
b | 60 |
丙 | 80 |
合并后,我得到以下信息:
ID | 值1 | 值2 |
---|---|---|
一个 | 8.7 | 50 |
b | 5.2 | 60 |
丙 | 9.0 | 80 |
但我想要的是这个:
ID | 值1 | 值2 |
---|---|---|
一个 | 10.9 | 50 |
b | 5.2 | 60 |
丙 | 9.0 | 80 |
我的代码如下所示:
#first table to be merged
let
source = Table.Combine({table1, table2}),
sorted = Table.Sort(source,{{"value1", Order.Descending}}),
remove_duplicates = Table.Distinct(sorted, {"ID"}),
table1_final = Table.Sort(remove_duplicates ,{{"ID", Order.Ascending}})
#second table to be merged
source2 = Table.Combine({table1, table2}),
sorted2 = Table.Sort(source2,{{"value2", Order.Descending}}),
remove_duplicates2 = Table.Distinct(sorted2, {"ID"}),
table2_final = Table.Sort(remove_duplicates ,{{"ID", Order.Ascending}})
#merged table
source3 = Table.NestedJoin(table1_final, {"ID"}, table2_final , {"ID"}, "table1_final ", JoinKind.FullOuter),
expanded = Table.ExpandTableColumn(source3 , "table2_final", {"value2"}, {"value2"})
in
expanded