Есть ли пропустить повторяющиеся записи для export-csv? - PullRequest
0 голосов
/ 19 марта 2019

У меня есть запрос, который выбирает системные данные о базе данных

$data = Query "SELECT [server_name]
      ,[sessionID]
      ,[user]
      ,[ElapsedTime]
from table"
$data | Export-Csv -Path $Path\data.csv -NoTypeInformation

недавно я заметил, что в экспортируемых данных есть повторяющиеся записи, такие как избыточный идентификатор сеанса. есть ли возможность экспортировать и пропускать повторяющиеся записи?

что-то вроде

$data | Export-Csv -Path $Path\data.csv -NoTypeInformation -skipduplicates

например, если таблица имеет:

table

экспортируемый CSV должен содержать только:

one entry

Я думаю, что некоторые люди могут предложить, чтобы я выбрал другое и избегал всего этого вместе. но тогда как я могу выбрать различимый только sessionID, например, потому что истекшее время не уникально, например, поэтому различное не должно влиять на это

Ответы [ 2 ]

3 голосов
/ 19 марта 2019

Перед экспортом в csv вы можете использовать дополнительный канал для исключения дубликатов.Вы можете добавить свойства, на основе которых вы хотите исключить дубликаты.Ниже приведен пример -

$data | Select-Object -Unique SessionId, User, ElapsedTime | Export-Csv -Path $Path\data.csv -NoTypeInformation
1 голос
/ 19 марта 2019

Другим вариантом предотвращения дублирования является добавление предложения GROUP BY к вашему SQL-запросу:

SELECT [server_name]
      ,[sessionID]
      ,[user]
      ,MAX([ElapsedTime]) AS ElapsedTime 
from table 
GROUP BY [server_name],[sessionID],[user]

Это исключит любые строки с различными значениями ElapsedTime, которые в противном случае дублируются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...