对查询数据进行分组计数-groupby原创
金蝶云社区-丨Nick丨
丨Nick丨
12人赞赏了该文章 3,698次浏览 未经作者许可,禁止转载编辑于2021年05月18日 11:46:54

场景:对单据的数据按照创建人或者某用户字段进行分组,并统计每个人有几条单据数据

实现:利用苍穹的algo框架,dataSet接口groupby实现

代码:


//利用帮助类查询数据集
DataSet dataSet = QueryServiceHelper.queryDataSet("algoKey", "demobill", "id,userfield.name", null, null);
//对结果dataSet进行按照用户名字分组处理
GroupbyDataSet groupby = dataSet.groupBy(new String[]{"userfield.name"});
//对分组结果计数并命名别名count
groupby = groupby.count("count");
//调用finish得到最终结果集
DataSet dataSet2 = groupby.finish();
//对dataSet遍历得到数据
for (Row row : dataSet2) {
    row.getInteger("count");//每个人的数据数量
    row.getString("userfield.name");//人员名字
}

对遍历的结果使用list或者map进行记录用来做后续操作,记得close叶子节点,还有就是dataset不能做缓存,利用遍历循环取出,new对象存储记录


如果对您有帮助请点赞哟~【emoji】


赞 12