GBase 8c SQL 参考手册 南大通用数据技术股份有限公司 352 checksum ------------------- 25223696246875800 (1 row) first(anyelement) 描述:返回排序后第一个非NULL 值。 返回类型:anyelement gbase=# select * from tba; name ----- A A B D (4 rows) gbase=# select first("name" order by "name") as name from tba; first ----- A (1 rows) last(anyelement) 描述:返回排序后最后一个非NULL 值。 返回类型:anyelement gbase=# select * from tba; name ----- A A B D (4 rows) gbase=# select last("name" order by "name") as name from tba; last
GBase 8c SQL 参考手册 南大通用数据技术股份有限公司 353 ----- D (1 rows) mode() within group (order by value anyelement) 描述:返回某列中出现频率最高的值,如果多个值频率相同,则返回最小的那个值。排 序方式和该列类型的默认排序方式相同。其中value 为输入参数,可以为任意类型。 返回类型:与输入参数类型相同。 示例: gbase=# select mode() within group (order by value) from (values(1, 'a'), (2, 'b'), (2, 'c')) v(value, tag); mode ------ 2 (1 row) gbase=# select mode() within group (order by tag) from (values(1, 'a'), (2, 'b'), (2, 'c')) v(value, tag); mode ------ a (1 row) json_agg(any) 描述:将值聚集为json 数组。 返回类型:array-json 示例: gbase=# select * from classes; name | score -----+------- A | 2 A | 3 D | 5 D | (4 rows)
GBase 8c SQL 参考手册 南大通用数据技术股份有限公司 354 gbase=# select name, json_agg(score) score from classes group by name order by name; name | score -----+----------------- A | [2, 3] D | [5, null] (2 rows) json_object_agg(any, any) 描述:将值聚集为json 对象。 返回类型:object-json 示例: gbase=# select * from classes; name | score -----+------- A | 2 A | 3 D | 5 D | (4 rows) gbase=# select json_object_agg(name, score) from classes group by name order by name; json_object_agg ------------------------- { "A" : 2, "A" : 3 } { "D" : 5, "D" : null } (2 rows)