分组统计时如何对指定列进行串合并

例题描述和简单分析

数据库中有订单表,包含两个字段:订单 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/