润乾报表分组求和_自助报表应有的功能

一、什么是自助报表?

自助报表是用户自己可以通过简单操作就可以完成报表制作的一项 BI 功能。在这里用户不需要有技术基础,只需要明确自己的业务需求就可以轻松绘制报表,从而生成一套属于自己的数据分析。

那么对于一款 BI 工具而言,自助报表应该包含哪些功能呢?

二、自助报表应该包含哪些功能?

自助报表的架构大体上可以分为两部分:

1. 底层数据建模

2. 前端交互分析

那么我们就分别从这两个大方面探讨下具体的功能。

2.1 数据建模

业务人员前端所有的操作都是基于数据模型实现的,所以数据建模是最基础、最核心的功能。一般来说,数据建模要具备以下功能:

1) 支持多种数据源

支持 oracle、sqlserver、mysql 等常见 jdbc、odbc 数据库作为数据源;

也可以直接用 json、txt、excel 等文件作为数据集直接进行数据分析。

2) 数据预处理

数据预处理主要指数据关联,根据业务需求关联相关物理表或者视图。通过主外键设置实现一对多、多对一、一对一关系。

3) 灵活性

支持针对数据结构一次性建模,解决 CUBE 方式下模型频繁更改的难题,实现真正的灵活自助。

2.2 前端操作

1) 支持多种汇总方式

支持求和、平均、最大值、最小值等一系列统计方式。

2) 支持多种图表格式

支持列表、分组、交叉表格;

支持图表类型包括:柱图、线图、饼图、地图等。

3)支持指标 (公式) 计算

支持公式计算得到其他指标字段;

支持计算同比、环比、排名等计算指标。

4) 数据过滤

支持页面数据二次过滤,提供人性化条件输入入口;

支持下拉树、下拉列表、下拉日历、文本框等编辑风格。

5) 权限控制

数据分析时实现对数据、表、字段的权限控制。

三、润乾报表的自助模式—DQL

润乾报表提供了 DQL 设计器和 DQL 服务器,在 DQL 设计器中可以轻松进行元数据文件、字典文件、可视文件的制作,以实现数据模型建立、权限控制。

DQL 服务器可以进行 web 端操作的解析处理,把用户的操作转化成可执行的语句,对于大数据量的处理提供了异步查询机制(需集算器相关功能点)。前端展现部分开源,用户可以在最大程度上实现个性化定制效果。

话不多说,上图说话。

DQL 设计器中可以轻松建立数据模型 --- 元数据文件,可以建立 sql 表、引入数据库表,表间关系设置通过主外键设置也很容易实现。

7c3a70e97be1ffa2d3c43a285e91e98c.png

设置完之后,还可以查看表间关系:

3f2f4f377f09ba56d40b19ce0fff20c1.png

除此之外,润乾报表提供的可视文件可以轻松实现权限控制,只需要配置可视表达式就 OK 了。

8f198121191b75ebf54871b1fedc4941.png

用户在 WEB 端的操作应有尽有,下面跟着图片一起看下吧 ~

托拉拽轻松绘制报表,各种数据汇总方式任你选:

83ae47039b431ec3b930066231c6f113.png

汇总数据钻取明细信息不是事儿:

c201e44fe42219fca6c09900c10238f9.png

数据切片、过滤数据一招搞定:

8fe46137cb25206c47e7ca35e904dc9d.png

3029f300b33ccbedcea3ad50c875e0dc.png

指标分析之排名、占比、同比等一个公式实现:

8972650b958380ec34b4b01eb8407be3.png

0f076ec90d0ad2d55982951c0ba066ed.png

小惊喜预告:后续版本会增加在 web 端制作 DBD 的功能,大屏报表也可以在自助报表中实现啦!!!

润乾报表 DQL 并不只限于所讲的这些功能,它是一个很有“内容”的功能哟 ~ 如此高效率又操作简单的自助报表是否令你心动了呢?更多自助报表相关内容请查看:http://c.raqsoft.com.cn/tag/Report?t= 自助报表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java8中,可以使用Stream API中的groupingBy方法进行多字段分组求和。下面是一个示例代码: 假设有一个包含以下数据的List: ``` List<Record> records = Arrays.asList( new Record("A", "X", 10), new Record("A", "Y", 20), new Record("B", "X", 30), new Record("B", "Y", 40) ); ``` 其中Record为以下类: ``` class Record { private String group1; private String group2; private int value; public Record(String group1, String group2, int value) { this.group1 = group1; this.group2 = group2; this.value = value; } public String getGroup1() { return group1; } public String getGroup2() { return group2; } public int getValue() { return value; } } ``` 如果要按group1和group2字段进行分组,并对value字段求和,可以使用以下代码: ``` Map<String, Map<String, Integer>> result = records.stream() .collect(Collectors.groupingBy(Record::getGroup1, Collectors.groupingBy(Record::getGroup2, Collectors.summingInt(Record::getValue)))); ``` 这将返回一个Map,其中第一层Map的键为group1字段的值,第二层Map的键为group2字段的值,值为对应的value字段求和的结果。例如,上面的示例代码将返回以下Map: ``` { "A": { "X": 10, "Y": 20 }, "B": { "X": 30, "Y": 40 } } ``` 在以上示例中,我们使用了两个groupingBy方法进行多字段分组,第一个groupingBy方法根据group1字段进行分组,第二个groupingBy方法根据group2字段进行分组,并在最后一个参数中使用summingInt方法对value字段求和

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值