如何用PowerShell实现SQL GROUP BY SUM逻辑?
PowerShell实现SQL分组求和的最简写法
对应你给出的SQL语句,用Group-Object结合Measure-Object的最简实现如下:
假设你的数据已存储在$tableData变量中(比如通过数据库查询或其他方式获取的对象数组),执行以下代码即可得到对应结果:
$tableData | Group-Object col1 | ForEach-Object { [PSCustomObject]@{ col1 = $_.Name SumOfValues = ($_.Group | Measure-Object col3 -Sum).Sum } }
代码说明
Group-Object col1:按col1字段对数据分组,每个分组的Group属性保存该组的所有原始对象Measure-Object col3 -Sum:计算当前分组内col3字段的总和,通过.Sum提取计算结果[PSCustomObject]:构造与SQL查询结果结构一致的输出对象,包含col1和SumOfValues两个属性
如果需要直接从数据库获取数据并完成计算,可以合并为:
Invoke-SqlCmd -ServerInstance "你的服务器实例" -Database "目标数据库" -Query "SELECT col1, col3 FROM dbo.Table" | Group-Object col1 | ForEach-Object { [PSCustomObject]@{ col1 = $_.Name SumOfValues = ($_.Group | Measure-Object col3 -Sum).Sum } }
内容的提问来源于stack exchange,提问作者xhr489
相关产品推荐
相关产品推荐

