LoginSignup
13
10

More than 5 years have passed since last update.

PowershellでGruop化集計

Last updated at Posted at 2015-04-10

はじめに

informixの中途パンパなSQLのCase式はGroup化して合計ができない。
仕方なしに一度csvに出力してPowerShellで集計してやることにした。

合計は想定されているがグループ化して集計というのは、
あまり用途が無いようでサンプルを探すのに苦労した。

Gruop化の仕方と集計

まず下記のcsvファイルを用意する。
nameでGroup化してval1からval3の合計を出したい。

test.csv

test.csv
name,val1,val2,val3
aaa1,15,15,26
bbb1,100,100,200
aaa1,15,15,26
bbb1,20,30,25

まずは、val1をグループ化して合計。

ワンライナーだが見やすくするために、
行の終わりに「`」(バッククオート)を追加して
改行している。

val1をグループ化して合計
PS > Import-Csv test.csv `
>> | group Name `
>> | select Name, `
>> @{Name="Total";Expression={($_.group| Measure-Object -sum val1).sum}}
>>
合計
Name   Total
----   -----
aaa1    30
bbb1   120

次に、val1からval3の合計を出す。

val1からval3をGruop化して合計
PS > Import-Csv test.csv `
>> | group Name `
>> | select Name, `
>> @{Name="val1";Expression={($_.group| Measure-Object -sum val1).sum}}, `
>> @{Name="val2";Expression={($_.group| Measure-Object -sum val2).sum}}, `
>> @{Name="val3";Expression={($_.group| Measure-Object -sum val3).sum}}
>>
合計
Name    val1    val2     val3
----    ----    ----     ----
aaa1     30       30       52
bbb1    120      130      225

参考サイト

powershellでcsvの集計 - @nifty教えて広場

13
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
10