zoukankan      html  css  js  c++  java
  • oracle——数据表的数据查询——distinct 关键字、group by 字句、having子句

    SQL查询
    
    create table yuangong ( id number,
                            name varchar2(50),
                            zhiwei varchar2(50),
                            age number,
                            sex varchar2(20)
                          ) tablespace test
                          
    insert into yuangong values(1,'周磊01','操作工',21,'');
    insert into yuangong values(2,'周磊02','操作工',23,'');
    insert into yuangong values(3,'周磊03','操作工',22,'');
    insert into yuangong values(4,'周磊04','操作工',24,'');
    insert into yuangong values(5,'周磊05','操作工',26,'');
    insert into yuangong values(6,'周磊06','操作工',25,'');
    insert into yuangong values(7,'周磊07','操作工',29,'');
    insert into yuangong values(8,'周磊08','操作工',28,'');
    insert into yuangong values(9,'周磊09','操作工',27,'');
    insert into yuangong values(10,'周磊10','操作工',25,'');
    
    insert into yuangong values(11,'周11磊','头目',39,'');
    insert into yuangong values(12,'周12磊','头目',31,'');
    insert into yuangong values(13,'周13磊','头目',37,'');
    insert into yuangong values(14,'周14磊','头目',34,'');
    
    insert into yuangong values(15,'周15磊','经理',45,'');
    
    
    select * from yuangong;
    ------------------------------------------------------------------
    
    create table xinzi ( id number,
                         yuangonghao number,
                         yuefen number,
                         jine number
                        ) tablespace test
                        
    
    select * from xinzi;
    
    insert into xinzi values(1,1,1,3800);
    insert into xinzi values(2,1,2,3600);
    insert into xinzi values(3,1,3,3300);
    insert into xinzi values(4,1,4,3200);
    
    
    insert into xinzi values(5,2,1,2800);
    insert into xinzi values(6,2,2,2600);
    insert into xinzi values(7,2,3,2300);
    insert into xinzi values(8,2,4,2200);
    
    insert into xinzi values(9,3,1,2200);
    insert into xinzi values(10,3,2,2500);
    insert into xinzi values(11,3,3,2300);
    insert into xinzi values(12,3,4,2800);
    
    insert into xinzi values(13,4,1,1200);
    insert into xinzi values(14,4,2,1500);
    insert into xinzi values(15,4,3,1300);
    insert into xinzi values(16,4,4,1800);
    
    ---------------------------------------------------
    
    insert into xinzi values(17,11,1,4200);
    insert into xinzi values(18,11,2,4500);
    insert into xinzi values(19,11,3,4300);
    insert into xinzi values(20,11,4,4800);
    
    insert into xinzi values(21,12,1,4800);
    insert into xinzi values(22,12,2,4600);
    insert into xinzi values(23,12,3,4300);
    insert into xinzi values(24,12,4,4200);
    
    insert into xinzi values(25,13,1,4200);
    insert into xinzi values(26,13,2,4300);
    insert into xinzi values(27,13,3,4400);
    insert into xinzi values(28,13,4,4500);
    
    insert into xinzi values(29,13,1,4200);
    insert into xinzi values(30,13,2,4300);
    insert into xinzi values(31,13,3,4400);
    insert into xinzi values(32,13,4,4500);
    -------------------------------------------------------
    
    insert into xinzi values(33,15,1,7300);
    insert into xinzi values(34,15,2,7700);
    insert into xinzi values(35,15,3,7500);
    insert into xinzi values(36,15,4,7900);
    
    
    ------------------------------------------------------------------------------------
    
    
    
    distinct 关键字可以获得唯一性记录,被distinct限制的既可以是单个列,也可以是多个列的组合。
    
    select yuefen from xinzi;
    
    select distinct yuefen from xinzi;
    
    
    ----------------------------------------------------------------------------------------------------
    
    order by 关键字可以将查询的结果,按照一定的顺序进行排序,asc 升序;desc 降序;
    
    select jine from xinzi order  by  jine desc;
    
    select jine from xinzi order  by  jine asc;
    --------------------------------------------------------------------------------------------------------
    
    group by 字句
    
    group by字句用于对记录集合进行分组。一旦使用了分组之后,select语句的真实操作目标即为各个分组数据,每次想循环处理的也是各个分组,
    
    而不再是单条记录。
    
    
    统计每一位员工的工资
    
    select name,sum(jine) from yuangong,xinzi where yuangong.id = xinzi.yuangonghao 
    group by  yuangong.id,name;
    
    
    注意:order by子句是对最终结果进行排序的,因此,如果一条查询语句中同时存在着group by和order by子句,那么应该将order by 子句置于
    
    group by之后,并且order by子句的排序标准不能出现group by子句定义之外的列。
    
    ------------------------------------------------------------------------------------------------------------------------------------
    
    having子句
    
    where子句会对from子句所定义的数据源进行条件过滤,但是针对group by子句形成的分组之后的结果集,where子句将会无能为力。
    
    为了过滤group by子句产生的结果集,可以使用having子句
    
    
    select name,sum(jine) from yuangong,xinzi where yuangong.id = xinzi.yuangonghao 
    group by yuangong.id,yuangong.name 
    having sum(jine) > 8500 
    order by sum(jine); 
    
    
    ======================================================================================================================
    drop table yuangong;
    drop table xinzi;
  • 相关阅读:
    ubuntu之路——day8.4 Adam自适应矩估计算法
    ubuntu之路——day8.3 RMSprop
    ubuntu之路——day8.2 深度学习优化算法之指数加权平均与偏差修正,以及基于指数加权移动平均法的动量梯度下降法
    ubuntu之路——day8.1 深度学习优化算法之mini-batch梯度下降法
    ubuntu之路——day7.4 梯度爆炸和梯度消失、初始化权重、梯度的数值逼近和梯度检验
    redis作为mysql的缓存服务器(读写分离)
    阿里云服务器上配置并使用: PHP + Redis + Mysql 从配置到使用
    小程序开发测试教程
    使用PHP并发执行任务–curl_multi应用
    PHP返回变量或数组的字符串表示:var_export()
  • 原文地址:https://www.cnblogs.com/xiaobaibailongma/p/12257751.html
Copyright © 2011-2022 走看看