我有一个获取有关数据库的系统数据的查询
$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应仅包含:
我想有些人可能会建议我选择distinct,避免所有这些都在一起。但是,我如何才能选择distinct only sessionID,例如,因为经过的时间不是唯一的,所以distinct不应该影响它
发布于 2019-03-20 01:11:24
在导出到csv
之前,可以使用其他管道来排除重复项。您可以添加要基于其排除重复项的属性。下面是一个例子:
$data | Select-Object -Unique SessionId, User, ElapsedTime | Export-Csv -Path $Path\data.csv -NoTypeInformation
发布于 2019-03-20 03:53:38
另一个防止重复的方法是将GROUP BY子句添加到SQL查询:
SELECT [server_name]
,[sessionID]
,[user]
,MAX([ElapsedTime]) AS ElapsedTime
from table
GROUP BY [server_name],[sessionID],[user]
这将消除任何具有不同ElapsedTime值的行,否则这些行是重复的。
https://stackoverflow.com/questions/55246429
复制相似问题