oracle 分組查詢

2022-09-13 14:12:10 字數 1350 閱讀 5918

組函式

count()(個數)、sum()(求和)、**g()(平均)、max()(最大值)、min()(最小值)。

· count(*

):會實際的統計出表中的資料量;

· count

(字段):

|- 如果統計的字段上不包含有 null,那麼與 count(*

)結果相同;

|- 如果統計欄位上包含有了 null,null

不參與統計;

· count(distinct 字段):消除掉重複資料後的統計。

分組統計

· 限制一:統計函式單獨使用時(沒有 

group

by子句)只能夠出現統計函式,不能夠出現其它字段。

正確的**:

select

count(empno) from emp ;

錯誤的**:

select

count(empno),ename from

emp ;

· 

限制二:使用統計查詢時(存在

group

by 子句),select

子句之中只允許出現統計函式與分組字段,

其它的任何欄位都不允許出現。

正確的**:

select deptno,count

(empno)

from

empgroup

bydeptno ;

錯誤的**:

select deptno,count

(empno),ename

from

empgroup

bydeptno ;

· 限制三:統計函式在分組之中可以巢狀使用,但是巢狀之後的統計查詢之中,

select

子句不允許再出現

任何的字段,包括分組字段。

正確的**:

select

max(count

(empno))

from

empgroup

bydeptno ;

錯誤的**:

select deptno,max(count

(empno))

from

empgroup

by deptno ;

關於 where 和 h**ing 的區別?

· where 子句:是在分組前使用,而且不能夠使用統計函式進行驗證,經過 where 篩選後的資料才可以分組;

· h**ing 子句:必須結合 group by 子句一起出現,是在分組後的過濾,可以使用統計函式。

Oracle分組查詢

首先要明白的一點 資料重複的時候分組才有意義。分組查詢語法 select distinct 分組欄位1 別名 分組欄位2 別名 統計函式 from 表名稱 別名 表名稱 別名 where 條件 s group by 分組欄位1 分組欄位2 order by 排序字段 asc desc 排序字段 as...

oracle的拆分組合查詢

表 msg content 表 msg contact person 想要得到的效果 要點分析 結果表和表1不同的地方是receiver欄位加入了表2的真實姓名 實現方式 第一步 拆分表1的字段 select c.msg content id as contentid,regexp substr r...

oracle查詢資料以時間分組

處理統計資料的時候,經常會出現這樣的情況,每條資料記錄的時間都是當時時間點的時間戳,但是分析資料的時候,卻想把資料按照每天 每月等情況來分組。因此在查詢資料的時候,需要用比較巧妙的辦法來實現。以下是以每天分組的oracle select語句事例 select to char create time ...