【问题标题】:Remove duplicates, based on time interval within 30 seconds根据 30 秒内的时间间隔删除重复项
【发布时间】:2022-01-18 05:36:04
【问题描述】:

我有一张车辆进入停车场的表格。对于每个预先注册的车辆,该表有多个条目。传感器附近存在有效的 HID 徽章,将在车辆通过大门的时间间隔内生成“n”条记录条目。

我需要使用 Power Query 语句删除重复的条目,考虑到重复的条目,徽章编号出现在多行中,时间间隔为 30 秒,在特定的门第一个始终是不重复的条目

我已经使用 RoundDown 减少了重复,及时消除了 Seconds,但仍然有重复在分钟级别上有所不同。

【问题讨论】:

    标签: time duplicates powerquery


    【解决方案1】:

    试试这个

    它计算每一行与其下一行之间的秒数,并检查徽章和门。

    let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    // create duplicate of entire table, offset by 1 row for comparison
    MinusOne = Table.RemoveFirstN(Table.DemoteHeaders(Source),2),
    custom1 = Table.ToColumns(Source) & Table.ToColumns(MinusOne ),
    custom2 = Table.FromColumns(custom1,Table.ColumnNames(Source)&Table.ColumnNames(MinusOne) ),
    #"Renamed Columns1" = Table.RenameColumns(custom2,{{"Column1", "Date2"}, {"Column2", "Badge2"}, {"Column3", "Gate2"}}),
    #"Added Custom" = Table.AddColumn(#"Renamed Columns1", "Custom", each if [Badge]=[Badge2] and [Gate]=[Gate2] and Number.Round(Duration.TotalSeconds(Duration.From(Number.Abs(Number.From([Date])-Number.From([Date2])))))<1800 then "Yes" else "No"),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Date2", "Badge2", "Gate2"})
    in  #"Removed Columns"
    

    【讨论】:

    • 这个建议很有用,但它并没有解决记录混乱的问题,例如从附近更大范围的第二辆车的另一个​​徽章中交错读取。日期徽章门 15/dic 14:31:46 89726 IN 15/dic 14:31:48 89726 IN 15/dic 14:31:48 89726 IN 15/dic 14:31:48 89726 IN 15/dic 14:31: 50 86755 IN 15/dic 14:31:50 89726 IN 15/dic 14:31:52 89726 IN 15/dic 14:31:52 89726 IN 15/dic 14:31:54 86755 IN 15/dic 14:31: 54 86755 IN 15/dic 14:31:54 86755 IN 15/dic 14:31:54 86755 IN 15/dic 14:31:54 86755 IN 15/dic 14:31:56 86755 IN
    • @Dirk 所以你写的是你的实际数据可能有两辆车同时通过大门?是否有最大数量的车辆可以进入该大门?这两辆车会不会朝不同的方向行驶?
    • @Ron 大门一次只能处理一辆车。但是,第二辆车可能会在他的队列位置之前发送徽章信号,因为它的信号比第一辆车强。
    • 我们可以做一个先分组的版本,但一个简单的解决方案似乎是先对数据进行排序。然后应该可以正常工作。如果排序很重要,请在第一次排序之前使用索引,然后再使用
    • 根据您的评论,我了解在 MinusOne 之前,我必须对 (Badge, Date) 进行排序。您能否确认我是否应该将其放置在此处。
    猜你喜欢
    • 2021-10-31
    • 2020-11-03
    • 1970-01-01
    • 1970-01-01
    • 2021-06-06
    • 2021-07-31
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    相关资源
    最近更新 更多