oracle 分组函数、视图

组函数

  • 分组函数作用于一组数据,对每一组返回一个值
  • 组函数类型:

1、计数        count(列名 或 表达式)     对满足的行数进行统计

2、求和        sum(列名 或 表达式)       对数据进行和值计算,如 sum(grade) 计算总成绩

3、平均值    avg(列名 或 表达式)        对数据进行均值计算,如avg(grade)计算平均成绩

4、最大值    max(列名 或 表达式)       筛选最大的数据,如max(sum(grade))筛选最大总成绩

5、最小值    min(列名 或 表达式)        筛选最小数据,如min(sum(grade))筛选最小总成绩

6、标准差    stddev

7、方差        variance

  • 组函数忽略空值

分组(group by)

select  sno,  grade  from  student   group  by  sno;

不能在where中使用组函数Having 子句

用于过滤分组,满足having子句的分组才会显示

select  sno,grade  from  student  having  sum(grade)>160;

视图(view)

创建视图

create  [or replace] [force/noforce]  view  view_name

as

select  查询

[with  read  only  constraint]

or  replace   表示视图已经存在,代替原视图

force            表示基表不存在,也可以创建视图。但该视图不能正常使用,只有在建立相应基表之后,才能正常使用

noforce        表示基表不存在,不能创建视图,此为默认选项

with read only    说明视图是只读视图,不能进行增删改操作,实际中,基本上不通过试图进行数据增删改

删除视图

drop  view  view_name;

原文地址:https://www.cnblogs.com/wdz15808096467/p/10037563.html

时间: 2024-10-10 09:31:39

oracle 分组函数、视图的相关文章

ORACLE分组函数stddev和variance,我心存的疑问

方差函数VARIANCE(x),具体方法是: 设方差s,a为x1,x2...xn的平均值 ,则s = [(x1-a)^2+(x2-a)^2+(x3-a)^2+--(xn-a)^2]/n 标准差函数STDDEV(x),具体算法是: 方差开方.设标准查为& ,则 &^2 = s 但是我通过以下的实验,发现oracle是这样计算variance()的, s = [(x1-a)^2+(x2-a)^2+(x3-a)^2+--(xn-a)^2]/n-1 ,注意不是除以n,而是n-1 ---------

[转]【ROLLUP】Oracle分组函数之ROLLUP魅力

原创:http://blog.itpub.net/519536/viewspace-610995 本文通过演示给出Oracle ROLLUP分组函数的用法,体验一下Oracle在统计查询领域中的函数魅力.ROLLUP分组函数可以理解为Group By分组函数封装后的精简用法,这里同时给出ROLLUP的Group By的改写思路. 1.初始化实验坏境1)创建测试表group_test[email protected]> create table group_test (group_id int,

oracle分组函数

分组函数:作用于一组值,并对一组数据返回一个值: 分组函数的使用: 常用的分组函数: Avg(求平均值),sum(求总和),min(求最小值),max(求最大值),count(求总个数),wm_concat(行转列) 例:select count( distinct deptno) from emp ; 行转列: select deptno 部门号,wm_concat(ename) 部门中员工的名字  from emp group by deptno; ---------------------

Oracle分组函数之ROLLUP

功能介绍: 首先是进行无字段的聚合,然后在对字段进行从左到右依次组合后聚合 创建表: 1 Create Table score 2 ( 3 classID Int, 4 studentName Varchar2(50), 5 subject varchar2(50), 6 score Int 7 ); 插入测试数据: 1 Insert Into score values (001,'小徐','语文',87); 2 Insert Into score values (001,'小徐','数学',9

[SQL]-Oracle分组函数ROULLUP的应用

首先部分说明: Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句.如果是Group by ROLLUP(A, B, C)的话,首先会对(A.B.C)进行GROUP BY,然后对(A.B)进行GROUP BY,然后是(A)进行GROUP BY,最后对全表进行GROUP BY操作. 因工作要做个报表,因此想就在数据库直接跑个报表出来,取公司部分数据整理如下: SELECT CLP.ITEMNAME AS PORVINCE, CLC.ITEMNAME AS CIT

Oracle——分组函数

AVG(平均值)和 SUM (合计)函数 可以对数值型数据使用AVG 和 SUM 函数. AVG组函数忽略空值 --在组函数中使用NVL函数 --求平均值 sum(expr)/count(nvl(expr,0)) MIN(最小值)和 MAX(最大值)函数 可以对任意数据类型的数据使用 MIN 和 MAX 函数. SELECT MIN(hire_date), MAX(hire_date) FROM employees; COUNT(*) 返回表中记录总数,适用于任意数据类型. SELECT COU

Oracle分组函数cube VS rollup

分析函数cube和rollup魅力首先请看下面例子1)创建表create table group_test (group_id int, job varchar2(10), name varchar2(10), salary int);2)初始化表insert into group_test values (10,'Coding', 'Bruce',1000);insert into group_test values (10,'Programmer','Clair',1000);insert

Oracle分组函数之Grouping Sets

功能介绍: 自定义分组的字段 创建表: 插入测试数据: Grouping Sets(null,t.classid,(t.classid,t.studentname)),类似于ROLLUP Select t.classid,t.studentname,Sum(t.score) From Score t Group By Grouping Sets(null,t.classid,(t.classid,t.studentname)); 查询结果: Grouping Sets(null,t.classi

Oracle分组函数之CUBE

功能介绍: 首先是进行无字段的聚合,然后依次对每个字段进行聚合 创建表: 插入测试数据: ROLLUP: Select t.classid,t.studentname,Sum(t.score) From Score t Group By Rollup(t.classid,t.studentname); 查询结果: Cube: Select t.classid,t.studentname,Sum(t.score) From Score t Group By Cube(t.classid,t.stu