分组统计时如何对指定列进行串合并
例题描述和简单分析
数据库中有订单表,包含两个字段:订单 ID(ORDERID)和描述(DESCRIPTION),如下:
ORDERID |
DESCRIPTION |
728123 |
WHITE |
728123 |
35.00X45.00 |
728123 |
EXTRA |
728123 |
SANDBLASTED OUTTER |
728123 |
CHARCOAL FLAT |
728123 |
SP |
728123 |
BT |
728123 |
NO GLAZE |
728123 |
EXTRA STICKS |
728125 |
WHITE |
728125 |
56.00X24.00 |
需要对 ORDERID 分组,对DESCRIPTION进行串合并(用逗号分隔串),如下:
ORDERID |
DESCRIPTION |
728123 |
WHITE,35.00X45.00,EXTRA,SANDBLASTED OUTTER,CHARCOAL FLAT,SP,BT,NO GLAZE,EXTRA STICKS |
728125 |
WHITE,56.00X24.00 |
解法及简要说明
在集算器中编写脚本 p1.dfx,如下所示:
A |
|
1 |
=connect("demo") |
2 |
=A1.query@x("SELECT * FROM ORDERS") |
3 |
=A2.group(ORDERID;~.(DESCRIPTION).concat@c():DESCRIPTIONS) |
简要说明:
A1 连接数据源名称为 demo 的数据库
A2 执行 SQL,返回查询结果所组成的序表,结束时自动关闭数据库连接
A3 对序表 A2 的 ORDERID 分组,组内的 DESCRIPTION 用逗号分隔拼成串
JAVA 集成这段代码的方法可参考:《Java 如何调用 SPL 脚本》。
https://www.eclipse.org/forums/index.php/t/1092202/
英文版
英文版