解决方案是将原始数据与自身连接,使用最小聚合计算最早日期。
从名为Query1的查询中的这个起始数据:
ID,Date
501,01/01/2017
203,08/06/2015
304,01/04/2014
501,01/01/2016
201,01/02/2015
501,01/08/2015
通过以下方式加入数据:组合 > 合并查询(又名“加入”)> 将查询合并为新的(以避免修改 Query1)
每次选择Query1 ID 列,保留默认的左外连接类型:
接下来,选择 Transform > Structured Column > Aggregate,然后选择“Count of Date”(如果 UI 建议最小聚合会更好,但我们可以通过直接触摸代码来解决此问题)。
接下来,打开公式栏(视图 > 布局 > 公式栏)并编辑公式以将 List.Count 替换为 List.Min。重命名新列,就完成了!
我的完整“M”公式:
查询1:
let
Source = Table.PromoteHeaders(Csv.Document("ID,Date
501,01/01/2017
203,08/06/2015
304,01/04/2014
501,01/01/2016
201,01/02/2015
501,01/08/2015"))
in
Source
合并1:
let
Source = Table.NestedJoin(Query1,{"ID"},Query1,{"ID"},"NewColumn",JoinKind.LeftOuter),
#"Aggregated NewColumn" = Table.AggregateTableColumn(Source, "NewColumn", {{"Date", List.Min, "Earliest Date"}})
in
#"Aggregated NewColumn"