1. 程式人生 > 其它 >對於oracle中count,max,min,sum,avg以及NVL函式我是這樣理解的

對於oracle中count,max,min,sum,avg以及NVL函式我是這樣理解的

  1、Count

  用來計算有效資料的數量

  例如,對於Scott的Schema中有表Emp;

  Select Count(*) From Emp;

  將會得到結果:COUNT(*)———-14

  2、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

  3、Max

  返回一個數字列或計算列的最大值

  和最小值用法一樣。

  4、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_type_id=6

  Groupby gi.ID, gi.game_instance_name, gi.draw_no, gi.draw_date

  Havingcount(*) > 0

  Orderby gi.draw_no

  5、Avg

  返回一個數字列或計算列的平均值

  用法和Max,Min,Sum一樣。

  6、NVL(expr1,expr2) 如果Oracle第一個引數為空那麼顯示第二個引數的值,如果第一個引數的值不為空,則顯示第一個引數本來的值。

  Select

  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_type_id=6