我有一个查询,用于获取有关数据库的系统数据
$data = Query "SELECT [server_name]
,[sessionID]
,[user]
,[ElapsedTime]
from table"
$data | Export-Csv -Path $Path\data.csv -NoTypeInformation
最近我发现导出的数据中存在重复的条目,例如冗余的会话ID。有没有导出和跳过重复条目的选项?
类似
$data | Export-Csv -Path $Path\data.csv -NoTypeInformation -skipduplicates
例如,如果表具有:
导出的csv仅应包含:
我认为有些人可能建议我选择与众不同的地方,并避免所有这些。但是然后我该如何例如仅选择不同的sessionID,因为例如经过时间不是唯一的,所以不同的应该不会影响它
答案 0 :(得分:3)
在导出到csv
之前,您可以使用其他管道排除重复项。您可以基于要排除重复项的属性来添加。下面是一个示例-
$data | Select-Object -Unique SessionId, User, ElapsedTime | Export-Csv -Path $Path\data.csv -NoTypeInformation
答案 1 :(得分:1)
防止重复的另一种方法是将GROUP BY子句添加到您的SQL查询中:
SELECT [server_name]
,[sessionID]
,[user]
,MAX([ElapsedTime]) AS ElapsedTime
from table
GROUP BY [server_name],[sessionID],[user]
这将消除具有不同ElapsedTime值的任何行,否则这些行将重复。