package com.bigdata.spark.test01 object Sparksql9 { val emp = spark.read.json("file:///D:\\test\\sql\\emp.json") val dept = spark.read.json("file:///D:\\test\\sql\\ept.json") val sal = spark.read.json("file:///D:\\test\\sql\\sal.json") emp.createOrReplaceTempView("empals") dept.createOrReplaceTempView("deptals") sal.createOrReplaceTempView("salals") //1.查询出部门编号为30的所有员工的编号和姓名 spark.sql("select deptno,empno,ename from empals where deptno=30").show() //2.找出部门编号为10中所有经理,和部门编号为20中所有销售员的详细资料。 spark.sql("select * from empals where deptno=10 and job= 'MANAGER' or deptno = 20 and job= 'SALESMAN'").show() //3.查询所有员工详细信息,用工资降序排序,如果工资相同使用入职日期升序排序 spark.sql("select * from from empals order by total desc,hiredate asc") //4.列出薪金大于1500的各种工作及从事此工作的员工人数。 spark.sql("select job,count(1) from empals where sal>500 group by job").show() //5.列出在销售部工作的员工的姓名,假定不知道销售部的部门编号。 //spark.sql("select ename from empals where deptno = '(select deptno from tabledept where dname='SALES')' ").show() //6.查询姓名以S开头的以S结尾包含S字符或者第二个字母为L spark.sql("select * from empalias where ename like '%S%' or ename like'_L%'").show() //7.查询每种工作的最高工资、最低工资、人数 spark.sql("select max(coalesec(comm,0)+sal),min(coalesce(comm,0)+sal),count(1),job from empals group by job ").show() 8.列出薪金 高于 公司平均薪金的所有员工号,员工姓名,所在部门名称,上级领导,工资,工资等级 //sparl.sql( // """ // |select // |a.ename, // |a.empno, // |b.ename as leader_name, // |a.earn, // |c.grade as earn_level, // |from // |( // |select // |ename, // |empno, // |deptno, // |mgr, // |coalesec(((sal + comm),sal)) as earn // | from empals // | where sal> ( // | elect avg(sal) // | from empalias) // | )as a // | left join deptals // | on a.deptno=deptals.deptno // | left join ( // | select // | empno, // | ename // | from empals // | ) b // | on a.mgr = b.empno // | left join // | salals as c on // | earn >= losal and earn <= hisal // |) // | // |""".stripMargin).show() //9.列出薪金 高于 在各自部门工作的员工的平均薪金的员工姓名和薪金、部门名称 // spark.sql( // """ // |select // |* // |from // |(select // |avg(sal) as avg_alias, // |deptno as deptno_alias // |from // |(select // |sal, // |deptno // |from empals // |group by sal,deptno) as a // |group by deptno) // |as b // |left join empals // |on b.deptno_alias=empals.deptno // | and b.avg_alias<empals.sal // | as c // | where c.deptno_alias in // | (select // | deptno // | from // | deptals) // |""".stripMargin).show() }
sqark-sql的应用(九道题)
最新推荐文章于 2023-01-13 07:48:09 发布