Oracle SQL 內置函數大全(4) http://www.51cto.com 2005-12-30 10:25 出處:gissky
Posted on 2006-07-26 15:15 Kevin Meng 閱讀(182) 評論(0) 編輯 收藏all表示對所有的值求平均值,distinct只對不同的值求平均值
SQLWKS> create table table3(xm varchar(8),sal number(7,2));
語句已處理。
SQLWKS>? insert into table3 values('gao',1111.11);
SQLWKS>? insert into table3 values('gao',1111.11);
SQLWKS>? insert into table3 values('zhu',5555.55);
SQLWKS> commit;
SQL> select avg(distinct sal) from gao.table3;
AVG(DISTINCTSAL)
----------------
3333.33
SQL> select avg(all sal) from gao.table3;
AVG(ALLSAL)
-----------
2592.59
61.MAX(DISTINCT|ALL)
求最大值,ALL表示對所有的值求最大值,DISTINCT表示對不同的值求最大值,相同的只取一次
SQL> select max(distinct sal) from scott.emp;
MAX(DISTINCTSAL)
----------------
5000
62.MIN(DISTINCT|ALL)
求最小值,ALL表示對所有的值求最小值,DISTINCT表示對不同的值求最小值,相同的只取一次
SQL> select min(all sal) from gao.table3;
MIN(ALLSAL)
-----------
1111.11
63.STDDEV(distinct|all)
求標準差,ALL表示對所有的值求標準差,DISTINCT表示只對不同的值求標準差
SQL> select stddev(sal) from scott.emp;
STDDEV(SAL)
-----------
1182.5032
SQL> select stddev(distinct sal) from scott.emp;
STDDEV(DISTINCTSAL)
-------------------
1229.951
64.VARIANCE(DISTINCT|ALL) 求協方差
SQL> select variance(sal) from scott.emp;
VARIANCE(SAL)
-------------
1398313.9
65.GROUP BY 主要用來對一組數進行統計
SQL> select deptno,count(*),sum(sal) from scott.emp group by deptno;
DEPTNO? COUNT(*)? SUM(SAL)
--------- --------- ---------
10???????? 3????? 8750
20???????? 5???? 10875
30???????? 6????? 9400
66.HAVING? 對分組統計再加限制條件
SQL> select deptno,count(*),sum(sal) from scott.emp group by deptno having nt(*)>=5;
DEPTNO? COUNT(*)? SUM(SAL)
--------- --------- ---------
20???????? 5???? 10875
30???????? 6????? 9400
SQL> select deptno,count(*),sum(sal) from scott.emp having count(*)>=5 group by tno ;
DEPTNO? COUNT(*)? SUM(SAL)
--------- --------- ---------
20???????? 5???? 10875
30???????? 6????? 9400
67.ORDER BY? 用于對查詢到的結果進行排序輸出
SQL> select deptno,ename,sal from scott.emp order by deptno,sal desc;
DEPTNO ENAME??????????? SAL
--------- ---------- ---------
10 KING??????????? 5000
10 CLARK?????????? 2450
10 MILLER????????? 1300
20 SCOTT?????????? 3000
20 FORD??????????? 3000
20 JONES?????????? 2975
20 ADAMS?????????? 1100
20 SMITH??????????? 800
30 BLAKE?????????? 2850
30 ALLEN?????????? 1600
30 TURNER????????? 1500
30 WARD??????????? 1250
30 MARTIN????????? 1250
30 JAMES??????????? 950