組函式
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 ...