取分组后第一条

【问题】

如题,要求 两张表一个类型表一个信息表,类型表的 type 字段和信息表 type 字段关联,现需要联合查出最新的一条信息(信息表 create_date),按照 type 分组

【回答】

用窗口函数或子查询可以实现问题中的查询,不过 SQL 写法有些难懂,而且如果有更复杂的需求,就会更难写了。

这种情况可以试试 SPL,其中的有序集合使得完成这类运算非常简单。集算器提供了 JDBC 接口用起来和 DB 基本一样。上述问题使用集算器实现的代码可以这样写:


A

1

$(db1)select * from 信息表 by create_date

2

=A1.group@1(type)


通过 A.group() 的 @1 选项直接取得每个分组中第一个成员,而且集算器提供 JDBC 接口,可以像数据库一样嵌入到应用程序中,用起来很简单。