Сгруппировать данные CSV-файла для создания отчета - PullRequest
1 голос
/ 08 октября 2019

У меня есть файл CSV с полями ниже:

Excel Table

Report2

Как можноЯ создаю отчет с полями ниже?

$lookupDatafiltered = Import-Csv -Path .\lookups_shutdown.csv

$lookupDatafiltered | Group-Object Region, Country, Status | Select-Object @{n='Region';e={$_.Group[0].Region}}, @{n='Country';e={$_.Group[0].Country}},@{n='Status';e={$_.Group[0].Status}}, Count | Sort-Object -Property Region , Country | export-csv -Path "C:\change\Country.csv" -NoTypeInformation

Как получить счетчик состояния также для экспортированного CSV для страны

1 Ответ

0 голосов
/ 08 октября 2019

Использование заданного вами фрагмента кода в качестве вспомогательного результата:

$lookupDatafiltered = Import-Csv -Path .\lookups_shutdown.csv
$lookupDataAux = $lookupDatafiltered | | Group-Object Region, Country, Status | 
    Select-Object @{n='Region' ;e={$_.Group[0].Region }}, 
                  @{n='Country';e={$_.Group[0].Country}},
                  @{n='Status' ;e={$_.Group[0].Status }}, 
                  Count | 
      Sort-Object -Property Region, Country, Status
$lookupDataAux  | Group-Object -Property Region,Country | 
    Select-Object @{n='Region' ;e={$_.Group[0].Region }}, 
                  @{n='Country';e={$_.Group[0].Country}},
                  @{n='up'     ;e={[int]($_.Group | ForEach-Object { if( $PSItem.Status -EQ 'up'   ) { $PSItem| Select-Object -ExpandProperty Count }})}},
                  @{n='down'   ;e={[int]($_.Group | ForEach-Object { if( $PSItem.Status -EQ 'down' ) { $PSItem| Select-Object -ExpandProperty Count }})}},
                  @{n='total'  ;e={($_.Group | Measure-Object -Property Count -Sum).Sum}}  |
        export-csv -Path "C:\change\Country.csv" -NoTypeInformation

Пожалуйста, рассмотрите возможность перемещения командлета Sort-Object в последний конвейер…

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