• 分组 连接的查询把我给弄昏了


     几乎要崩溃了,今天做了几道SQL查询题目,要求用连接,分组等形式把它做出来,真把我搞死了,

    首先我不太明白,sql查询语句的语法,印象中好像join 后面的on 不能和 where同时存在,做题怎么也做不出来,老师讲了on后面只是连接条件,它可以与where共存的。

    还有group by ,我做题目时 总是提示 不是group by语句 ,这SX Oracle 。。最后老师讲了,select 后面的列 只能是group by后面的列 否则会出现错误。

    然后,还有我不会分析题目,搞不清楚题目要求和表的关系 就开始下手了,结果根据表之间的逻辑关系,有些东西 通过 选择不同表 就可以查询出来,我非得连接那个表做查询,有些是我考虑的太复杂了,换一个表做分组、查询条件,结果自然就出来了,我非得在一个表上死转转~

    例如一个题目:  列出在每个部门工作的员工数量、平均工资和平均服务期限

    本来没有要求列出部门名称,我想列出部门。写的如下(不管怎么说终于写出来了)

    select d.dname,t.ct,t.ags,t.agm from
    (select deptno,count(*) ct,avg(sal) ags,avg(months_between(sysdate,hiredate))/12 agm
    from emp group by deptno) t right join dept d
    on d.DEPTNO=t.deptno;

    下面是老师的答案:

    select dname,count(*),avg(sal),avg(months_between(sysdate,hiredate))/12 from emp join dept on emp.deptno=dept.deptno group by dname

    两个答案都能写出答案,但符合出题者要求的,我想是老师那个。 因为表dept列出的是所有部门以它的dname为分组条件也是合适的,因为表emp的部门都在它里面。用emp表中部门分类不全,而且不符合出题者的要求的。

  • 相关阅读:
    查看hbase中的中文
    查看hbase中的中文
    scala使用hbase新api
    scala使用hbase新api
    IDEA15使用maven编译scala和java
    IDEA15使用maven编译scala和java
    IDEA非sbt下spark开发
    IDEA非sbt下spark开发
    sed初学者实用说明
    sed初学者实用说明
  • 原文地址:https://www.cnblogs.com/zwl24/p/2356792.html
Copyright © 2020-2023  润新知