oracle中的聚合函数count、max、min、sum、avg以及NVL函数的用法
分组函数聚合函数对一组行中的某个列执行计算执行计算并返回单一的值。聚合函数忽略空值。聚合函数经常与 SELECT 语句的 GROUP BY 子句一同使用,所以有的时候也把其称之为分组函数。这类函数通常应用于报表统计中,以下展示Oracle常用的聚合函数的应用。
分组函数的介绍 作用于一组数据,并对一组数据返回一个值.
常见的分组函数有:
Count
用来计算有效数据的数量
Min
返回一个数字列或计算列的最小值
select gi.ID,
gi.game_instance_name,
gi.draw_no,
gi.draw_date,
count(*) ticketNumber, ---用来计算有效数据的数量
nvl(min(tt.total_bets), 0) totalEntry,--用来计算给定字段的最小值,如果为NULL就用0代替
nvl(min(tt.total_amount), 0) TotalTurnover----用来计算给定字段的最小值,如果为NULL就用0代替
from te_bg_ticket tt, BG_GAME_INSTANCE gi, game g
where tt.BG_GAME_INSTANCE_ID = gi.ID
and gi.game_id = g.game_id
and gi.status = 1
and tt.ticket_type = 1
and tt.is_count_in_pool = 1
and g.game_id = '4028822f483fd59401483fe62dc4000d'
and g.game_type_id = 6
groupby gi.ID, gi.game_instance_name, gi.draw_no, gi.draw_date
havingcount(*) > 0
orderby gi.draw_no
Max
返回一个数字列或计算列的最大值
和最小值用法一样
Sum
返回一个数字列或计算列总和
select gi.ID,
gi.game_instance_name,
gi.draw_no,
gi.draw_date,
count(*) ticketNumber, ---用来计算有效数据的数量
nvl(sum(tt.total_bets), 0) totalEntry,--用来计算给定字段的总和,如果为NULL就用0代替
nvl(sum(tt.total_amount), 0) TotalTurnover----用来计算给定字段的总和,如果为NULL就用0代替
from te_bg_ticket tt, BG_GAME_INSTANCE gi, game g
where tt.BG_GAME_INSTANCE_ID = gi.ID
and gi.game_id = g.game_id
and gi.status = 1
and tt.ticket_type = 1
and tt.is_count_in_pool = 1
and g.game_id = '4028822f483fd59401483fe62dc4000d'
and g.game_type_id = 6
groupby gi.ID, gi.game_instance_name, gi.draw_no, gi.draw_date
havingcount(*) > 0
orderby gi.draw_no
avg
返回一个数字列或计算列的平均值
用法和Max,min,Sum一样
NVL函数
NVL(expr1,expr2) 如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。