sql server 的 PIVOT 通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执行聚合。
通俗简单的说:PIVOT就是行转列
本工具包中的 DatasPivotUtil 已经实现了此能力. 并已经接入到 SqlDdlDaoMultipleImpl 中, 从而可以用于处理任意数据源的数据.
PIVOT(<聚合函数>(<要聚合的列>) ... FOR [<包含要成为列标题的值的列>] in( [第一个透视的列], [第二个透视的列], ... [最后一个透视的列]))包含要成为列标题的值的列>要聚合的列>聚合函数>
注:
聚合函数可以不唯一, 不唯一时透视列的列名将由”_“作为分隔符拼接而成
透视列可以不填
本工具包支持多种 sql 传参方式:
FileSqlDaoConfImpl 提供 excel 等文件查询操作, 主要支持数据的 sql 查询, 对外可直接提供 jdbc 只读接口.
本文主要介绍 sql 查询能力。
包括 FileSqlDaoConfImpl 在内的所有 SqlDdlDao 都支持注入到 SqlDdlDaoMultipleImpl 做跨存储引擎的数据查询.
在 mysql, hive, presto 等架构中都有自定义 udf 函数的功能.
本工具包同样也提供类似能力.
常见的自定义函数分为三种: UDF(一进一出) UDAF(多进一出) UDTF(一进多出)
本工具包目前支持自定义 UDF 和 UDAF 函数, 并且内置 unwind 这个 UDTF 函数.
日常编写sql语句时, 经常用到变量占位符, 常用的有 ?, @val, #{val}, ${val} 等.
本工具类也支持上述变量占位符, 但与标准写法略有扩充和差异, 在此做专门的说明.