linq.js分组依据,聚合多个字段
linq.js group by, aggregate multiple fields
我正在尝试按 2 个属性对我的数据进行分组,并为每个组计算另外两个属性的总和。我的代码有点偏离,因为我得到的两个字段(值和数量)的总和相同。我错过了什么?谢谢!
代码 -
var linq = Enumerable.from(data);
var result = linq
.groupBy(
"{ pCo: $.portCo , sName: $.secName }",
"$.value, $.quantity",
"{ portCo: $.pCo, security: $.sName, value: $$.sum($.value), quantity: $$.sum($.quantity) }",
"$.pCo + ' ' + $.secName")
.toArray();
好的,经过 n 次试验和 (n-1) 次错误后,它可以使用以下语法工作:
var linq = Enumerable.from(data);
var result = linq
.groupBy(
"{ pCo: $.portCo , sName: $.secName }",
null,
"{ portCo: $.pCo, security: $.sName, value: $$.sum('$.value'), quantity: $$.sum('$.quantity') }",
"$.pCo + ' ' + $.secName")
.toArray();
我不清楚 null 的基本原理,我需要为求和函数中的 属性 名称加上 '$.x' 引号。
解决方案的灵感来自 Jeff 在这里的回答 -
我正在尝试按 2 个属性对我的数据进行分组,并为每个组计算另外两个属性的总和。我的代码有点偏离,因为我得到的两个字段(值和数量)的总和相同。我错过了什么?谢谢!
代码 -
var linq = Enumerable.from(data);
var result = linq
.groupBy(
"{ pCo: $.portCo , sName: $.secName }",
"$.value, $.quantity",
"{ portCo: $.pCo, security: $.sName, value: $$.sum($.value), quantity: $$.sum($.quantity) }",
"$.pCo + ' ' + $.secName")
.toArray();
好的,经过 n 次试验和 (n-1) 次错误后,它可以使用以下语法工作:
var linq = Enumerable.from(data);
var result = linq
.groupBy(
"{ pCo: $.portCo , sName: $.secName }",
null,
"{ portCo: $.pCo, security: $.sName, value: $$.sum('$.value'), quantity: $$.sum('$.quantity') }",
"$.pCo + ' ' + $.secName")
.toArray();
我不清楚 null 的基本原理,我需要为求和函数中的 属性 名称加上 '$.x' 引号。
解决方案的灵感来自 Jeff 在这里的回答 -