You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PowerShell中对DataTable按pobox分组并求和pages列?

PowerShell DataTable分组求和实现

针对你需要按pobox分组并对pages求和的需求,可以通过Group-Object结合Measure-Object来实现,具体代码如下:

基础实现(输出自定义对象)

$dataTable | Group-Object -Property pobox | ForEach-Object {
    [PSCustomObject]@{
        pobox = $_.Name
        pages = ($_.Group | Measure-Object -Property pages -Sum).Sum
    }
}

代码说明:

  1. Group-Object -Property pobox:将DataTable按pobox列分组,每个分组对象包含Name(分组的pobox值)和Group(该分组下的所有原始行)两个属性。
  2. Measure-Object -Property pages -Sum:对每个分组内的pages列求和,通过.Sum获取计算结果。
  3. 用[PSCustomObject]构造新的对象,输出分组后的pobox和对应的求和结果。

保持DataTable类型输出

如果需要输出结果仍为DataTable类型,可以进一步构造新的DataTable:

# 创建结果DataTable
$resultTable = New-Object System.Data.DataTable
$resultTable.Columns.Add("pobox", [string]) | Out-Null
$resultTable.Columns.Add("pages", [int]) | Out-Null

# 分组求和并填充结果表
$dataTable | Group-Object -Property pobox | ForEach-Object {
    $newRow = $resultTable.NewRow()
    $newRow["pobox"] = $_.Name
    $newRow["pages"] = ($_.Group | Measure-Object -Property pages -Sum).Sum
    $resultTable.Rows.Add($newRow)
}

# 输出结果
$resultTable

这个逻辑和你熟悉的SQL写法对应:Group-Object -Property pobox对应GROUP BY pobox,Measure-Object -Sum对应SUM(pages)。

内容的提问来源于stack exchange,提问作者PGhere

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 21:28:18