oracle中的聚合函数count、max、min、sum、avg以及NVL函数的用法

原文链接:https://my.oschina.net/qiuzhping/blog/611702

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第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。


转载于:https://my.oschina.net/qiuzhping/blog/611702

上一篇:课堂作业--最大连续子数组和


下一篇:连续子数组的最大和