dataviewjs 如何对数组类进行分组统计和dv.table输出

假如在dataviewjs里,已用
payarray.push({ paydate, payamount, paycard });

准备好payarray,要实现如下的SQL语义,该怎么写:
select paydate,paycard,sum(payamount)
from …
group by paydate,paycard
order by paydate,paycard;

翻看奇淫技巧,似乎dataview提供了groupby的实现:
dv.table([…],
payarray.groupby(p=>p.paydate,p.paycard).sort(p=>p.card).sort(p=>p.paydate).map(…)
)

碰到的问题:
1, payarray似乎不被table接受,出错
2, map里,如何对payamount进行汇总

“1, payarray似乎不被table接受,出错”

dv.table() 的第二个传参可以是普通数组, 还可以是 dv.DataArray,
一般怎么写都能接受,
如果 payarray 是普通的数组, 报错可能是因为它不支持 groupBy 这种 dv 提供的接口
可以 const dv_payarray = dv.array(payarray) 转换


“2, map里,如何对payamount进行汇总”
groupBy 之后, 会返回 {key: label, rows: DataArray}
所以要做的就是把 rows 的内容取出来, 把数量加一起就完了
好像没有类似 dv.sum 这种偷懒的办法, 得自己写个 sum 函数

附: groupBy

/* Return an array where elements are grouped by the given key; the resulting array will have objects of the form
 * { key: <key value>, rows: DataArray }.
*/
groupBy<U>(key: ArrayFunc<T, U>, comparator?: ArrayComparator<U>): DataArray<{ key: U; rows: DataArray<T> }>;