获取基于列的最新重复项



我有一个从下面的sql查询中检索到的表

Id   Date-Time            FilesA    FilesB
556  2020-10-13 21:12:04  temp1.txt fels.csv
133  2020-09-08 03:22:16  NA        temp2.txt
556  2020-10-13 22:02:44  temp1.txt fels.csv
203  2021-08-03 03:22:16  macs.xml  temp2.txt

我正在拔出FilesA和FilesB列,并为Id列的所有Id做一些操作。但是在Id列中有一些重复,我需要只对基于日期-时间列的最新Id执行操作,例如556,我需要使用第三行的FilesA和FilesB,因为它是最新生成的,即22:02。我可以有不同id的多个副本,像这样。我如何实现与powershell脚本?所有我发现识别重复是使用csv这似乎没有帮助,因为我不需要csv和时间日期列是否有任何东西像转换检索列数据到日期时间对象,然后比较?我迷路了。

$SqlAdapter.SelectCommand = $SqlCmd
$Dataset = New-Object System.Data.Dataset
$SqlAdapter.Fill($Dataset)
$DataSet.Tables[0]
$data1=$DataSet.Tables[0]
$data1.FilesA #some operations
#need to perfrom the actions on all ids and for duplicates only on the latest ones

使用Group-ObjectId分组,然后从Sort-Object -Descending |Select -First组中选择具有最新日期的行:

$newestRowPerId = $data1 |Group-Object Id |ForEach-Object { 
$_.Group |Sort-Object -Property 'Date-Time' -Descending |Select -First 1 
}

相关内容

  • 没有找到相关文章

最新更新