首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Powershell:如何通过数组中的另一个属性对属性分组进行求和?

Powershell:如何通过数组中的另一个属性对属性分组进行求和?
EN

Stack Overflow用户
提问于 2019-07-10 07:49:29
回答 1查看 0关注 0票数 0

我有一个数组,像这样:

代码语言:javascript
复制
$array = @()
$Props = [ordered]@{Table="Table1"; Col1=1; Col2=2}
$array += New-Object psobject -Property $Props
$Props = [ordered]@{Table="Table2"; Col1=4; Col2=5}
$array += New-Object psobject -Property $Props
$Props = [ordered]@{Table="Table1"; Col1=3; Col2=7}
$array += New-Object psobject -Property $Props
$Props = [ordered]@{Table="Table2"; Col1=2; Col2=6}
$array += New-Object psobject -Property $Props

我想要得到的总和Col1,并Col2通过表

代码语言:javascript
复制
Table    Col1    Col2
-----    -----   -----
Table1       4       9
Table2       6      11

在SQL中,这将是:

代码语言:javascript
复制
SELECT Table, Col1 = SUM(Col1), Col2 = SUM(Col2)
FROM <$array>
GROUP BY Table

但我无法弄清楚如何在PoSh中做到这一点。当然这应该是相对简单的?

谢谢!

EN

Stack Overflow用户

发布于 2019-07-10 17:47:43

翻转SQL语句,你基本上知道在PowerShell中做什么 - 按表名分组,然后选择每个语句的总和!

代码语言:javascript
复制
# Group the objects by table name
$Tables = $array |Group Table |Select-Object -Expand Group

# Select the table name + sum of each group
$Tables |Select-Object Name,@{Name='Sum1';Expression={($_ |Measure-Object Col1 -Sum).Sum}},@{Name='Sum2';Expression={($_ |Measure-Object Col2 -Sum).Sum}}

最后两个参数Select-Object是计算表达式:

代码语言:javascript
复制
@{
  # Select a new property named "Sum1"
  Name = 'Sum1'
  Expression = {
    # Calculate the value from the sum of the Col1 properties in this table
    ($_ |Measure-Object Col1 -Sum).Sum
  }
}
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100009105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档