Forum Discussion

smpa01's avatar
smpa01
Community Champion
1 year ago
Solved

Dynamically generate column schema as record

Is it possible to generate dynamically for all columns of a given table the following     [id=nullable Int64.Type, year=nullable Int64.Type, amount=nullable number, ing_est=nullable datetime] ...
  • dufoq3's avatar
    dufoq3
    1 year ago

    Now I probably see what you want to achive. You want to replace this part of Table.Group. Is that correct?

    If yes, you can just delete that part of Table.Group and use Table.Combine to preserve column types, like this:

     

    let
        src=Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("lZBBCsMwDAT/4nMiVivLtvSO3EL+/4267aUlhWJdBIJhR3ueZUSUrRD0uXaFjjCprfX3te6IHfVAJDxJ0WaYU67tg60v1jkqhCugzYXlJOuNTuntm1RPjGQVRL+Tr//oGOai3WyF/aGpI9GTsytiRdOPmaNMhlhd1PzH3jT9UOQslE08FjVnzpN0ib6seWevBw==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [id = _t, year = _t, amount = _t, ing_est = _t]),
        ct = Table.TransformColumnTypes(src,{{"id", Int64.Type}, {"year", Int64.Type}, {"amount", type number}, {"ing_est", type datetime}}, "en-US"),
        GroupedRows = Table.Group(ct, {"id"}, {{"ad", each _, type table}}),
        Combined = Table.Combine(GroupedRows[ad])
    in
        Combined