Skip to main content

统计函数

统计函数汇总。

SUM

返回在某一集合上对数值表达式求得的和。

名称类型描述
语法SUM (expression [,partitionexp])
参数expression数值表达式。
参数partitionexp以双引号包括,内容是partition by xx与order by xx可选参数,分组累计统计条件。
返回类型同expression

示例及效果:

SELECT SUM (money,"partition by id") FROM sample

上述对应到原生sql为:

SELECT SUM (money) over(partition by id),name FROM sample

指id相同money字段进行累加,注意和group by的区别是查询可以出现非统计字段如上面的name。

AVG

返回在某一集合上对数值表达式求得的平均值。

名称类型描述
语法AVG (expression [,partitionexp])
参数expression数值表达式。
参数partitionexp以双引号包括,内容是partition by xx与order by xx可选参数,分组累计统计条件。
返回类型DECIMAL

示例及效果:

SELECT AVG (money,"partition by id") FROM sample

注:AVG除不尽的情况下在H2数据库情况下会返回整数,请使用sum(money)/count(money)。

COUNT

返回在某一集合上对数值表达式求得的总记录数。

名称类型描述
语法COUNT(expression [,partitionexp])
参数expression有效表达式。
参数partitionexp以双引号包括,内容是partition by xx与order by xx可选参数,分组累计统计条件。
返回类型INT

示例及效果:

#VSQL:
select count(id,"order by id") from example
#原生:
select COUNT( id) OVER(order by id) from example;

#VSQL:
select count(id," PARTITION by id") from example
#原生:
select COUNT( id) OVER(PARTITION by id) from example;

#VSQL:
select count(id,"PARTITION BY ID order by id") from example
#原生:
select COUNT( id) OVER(PARTITION BY ID order by id) from example;

#VSQL:
select count(distinct id) from example
#原生:
select COUNT(distinct id) from example;

#VSQL:
select count(distinct id,"order by id") from example
#原生:
select COUNT(distinct id) OVER(order by id) from example;

注:mssql只支持这种写法:

select COUNT(id,"PARTITION by id") from example;

MIN

返回在某一集合上对数值表达式求得的最小值。

名称类型描述
语法MIN (expression [,partitionexp])
参数expression有效表达式。
参数partitionexp以双引号包括,内容是partition by xx与order by xx可选参数,分组累计统计条件。
返回类型同expression

示例及效果:

SELECT MIN (money,"partition by id") FROM sample

MAX

返回在某一集合上对数值表达式求得的最大值。

名称类型描述
语法MAX (expression [,partitionexp])
参数expression有效表达式。
参数partitionexp以双引号包括,内容是partition by xx与order by xx可选参数,分组累计统计条件。
返回类型同expression

示例及效果:

SELECT MAX (money,"partition by id") FROM sample

ROWNUM

返回按指定排序方式生成的记录序列号,从1开始。

名称类型描述
语法ROWNUM (partitionexp)
参数partitionexp以双引号包括,内容是partition by xx或order by xx分组条件。
返回类型INT

示例及效果:

SELECT ROWNUM("partition by id order by sam1 asc") FROM sample

注:该函数在在H2和 MYSQL下不支持。