a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 126|回复: 0

[考试辅导] Oracle性能调优:日期时间函数大全5

[复制链接]
发表于 2012-8-4 14:06:19 | 显示全部楼层 |阅读模式
七。分组函数2 U- u  y, w1 l! ~1 Q
    max min avg count sum
5 |0 g. G; i* F6 @' x    1,整个结果集是一个组
) @) i" {! Q) h8 a    1) 求部门30 的最高工资,最低工资,平均工资,总人数,有工作的人数,工种数量及工资总和- A! n6 l! b6 F& c  z# A! n, w
    select max(ename),max(sal)," `: j2 o- [& _4 L7 A, d* E) M
    min(ename),min(sal),
* b% p/ I0 D" K$ V' k" ^2 y& ]+ L    avg(sal),
& P7 \9 n  |1 \  l3 ]7 o    count(*) ,count(job),count(distinct(job)) ,
1 y0 U$ j% S3 @6 V1 d2 e; Y: r# ^3 h2 n    sum(sal) from emp where deptno=30;
3 u7 {' u7 l! a4 R    2, 带group by 和 having 的分组3 h- T+ O' t3 ?! Z
    1)按部门分组求最高工资,最低工资,总人数,有工作的人数,工种数量及工资总和' q3 Z7 |2 |, X% L6 O
    select deptno, max(ename),max(sal),
: t5 ^0 Q) r0 A# q/ T    min(ename),min(sal),
8 j. C6 I- r9 K- k! b' J4 u8 t" n4 w    avg(sal)," n  n' P- A+ G# `& H
    count(*) ,count(job),count(distinct(job)) ,' k) U" z' w1 |; f; z- G
    sum(sal) from emp group by deptno;
0 a, [6 }" u1 G# n# N3 `" ]6 N    2)部门30的最高工资,最低工资,总人数,有工作的人数,工种数量及工资总和
. C8 O  ~- O: {/ P2 S    select deptno, max(ename),max(sal),
) }0 V% X4 K- n7 B* W    min(ename),min(sal),( |4 p$ W9 s6 e9 G! }/ v. |
    avg(sal),
6 t+ [% u7 |& j4 t    count(*) ,count(job),count(distinct(job)) ,$ v7 N8 q( s3 S
    sum(sal) from emp group by deptno having deptno=30;
0 ~! s& m% Z/ u$ y; {9 n8 E    3, stddev 返回一组值的标准偏差2 ]0 L  G' t% _% G
    select deptno,stddev(sal) from emp group by deptno;
% A6 H4 O* W4 I& \  z. H    variance 返回一组值的方差差& i% `0 ~& g8 {5 k1 s6 ~( n
    select deptno,variance(sal) from emp group by deptno;& \6 H" I- ^- P9 u1 \* b7 V
    4, 带有rollup和cube操作符的Group By
" Z* l1 |' x0 x3 t; [5 d2 W    rollup 按分组的第一个列进行统计和最后的小计
" Y  }- w: {) p, [2 i: T3 ?0 R5 e' y    cube 按分组的所有列的进行统计和最后的小计
5 k" K# Y( G* f7 Y) U    select deptno,job ,sum(sal) from emp group by deptno,job;1 U5 ^" t+ q" t, [# L# Z2 i
    select deptno,job ,sum(sal) from emp group by rollup(deptno,job);
  w3 Q6 J/ N$ p9 B    cube 产生组内所有列的统计和最后的小计
7 C7 z/ O4 W  F- E4 _+ T$ ^1 B    select deptno,job ,sum(sal) from emp group by cube(deptno,job);
9 k( P! U8 }# H" D4 F$ f5 Y    八、临时表
( z0 R$ E0 g$ t( o& s7 a    只在会话期间或在事务处理期间存在的表。- }6 I: T6 H+ q9 O
    临时表在插入数据时,动态分配空间
  B- _7 z8 }2 j4 X8 _5 o3 ~' s    create global temporary table temp_dept
& ~$ g. ~$ ^& a  G3 a# c! C; \    (dno number,1 q5 b* _7 J8 r
    dname varchar2(10))
' x' g( o2 }$ _    on commit delete rows;+ v( }: t+ Z* g. A' v7 U! y
    insert into temp_dept values(10,'ABC');
/ t/ l. v1 X3 [# d" I3 z    commit;& E% ^% W4 [. P# C7 v0 W! S; E
    select * from temp_dept; --无数据显示,数据自动清除
* W5 S; I, b9 U; Z( g    on commit preserve rows:在会话期间表一直可以存在(保留数据)7 v& X' Z! X. k- |4 Z/ i% y1 {
    on commit delete rows:事务结束清除数据(在事务结束时自动删除表的数据)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-8 02:11 , Processed in 0.156160 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表