Spark之SQL算子50题DSL编程
- 一 创建mysql表之脚本
- 二 IDEA中Spark连接Mysql
- 三 练习50题
-
- (1) 查询\"01\"课程比\"02\"课程成绩高的学生的信息及课程分数
- (2) 查询\"01\"课程比\"02\"课程成绩低的学生的信息及课程分数
- (3) 查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩
- (4) 查询平均成绩小于60分的同学的学生编号和学生姓名和平均成绩:– (包括有成绩的和无成绩的)
- (5) 查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩:
- (6)查询李姓老师的数量
- (7) 查询学过张三老师授课的同学的信息
- (8) 查询没学过张三老师授课的同学的信息
- (9)查询学过编号为01并且也学过编号为02的课程的同学的信息
- (10)查询学过编号为01但是没有学过编号为02的课程的同学的信息
- (11)查询没有学全所有课程的同学的信息
- (12)查询至少有一门课与学号为01的同学所学相同的同学的信息
- (13)查询和01号的同学学习的课程完全相同的其他同学的信息
- (14)查询没学过张三老师讲授的任一门课程的学生姓名
- (15)查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩
- (16)检索01课程分数小于60,按分数降序排列的学生信息
- (17)按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩
- (18)查询各科成绩最高分、最低分和平均分
- (19)按各科成绩进行排序,并显示排名
- (20)查询学生的总成绩并进行排名
- (21)查询不同老师所教不同课程平均分从高到低显示
- (22)查询所有课程的成绩第2名到第3名的学生信息及该课程成绩
- (23)统计各科成绩各分数段人数:课程编号,课程名称,[100-85],[85-70],[70-60],[0-60]及所占百分比
- (24)查询学生平均成绩及其名次
- (25)查询各科成绩前三名的记录
- (26)查询每门课程被选修的学生数
- (27)查询出只有两门课程的全部学生的学号和姓名
- (28)查询男生、女生人数
- (29)查询名字中含有风字的学生信息
- (30)查询同名同性学生名单,并统计同名人数
- (31)查询1990年出生的学生名单
- (32)查询每门课程的平均成绩,结果按平均成绩降序排列,平均成绩相同时,按课程编号升序排列
- (33)查询平均成绩大于等于85的所有学生的学号、姓名和平均成绩
- (34)查询课程名称为数学,且分数低于60的学生姓名和分数
- (35)查询所有学生的课程及分数情况
- (36)查询任何一门课程成绩在70分以上的学生姓名、课程名称和分数
- (37)查询课程不及格的学生
- (38)查询课程编号为01且课程成绩在80分以上的学生的学号和姓名
- (39)求每门课程的学生人数
- (40)查询选修张三老师所授课程的学生中,成绩最高的学生信息及其成绩
- (41)查询不同课程成绩相同的学生的学生编号、课程编号、学生成绩
- (42)查询每门课程成绩最好的前三名
- (43)统计每门课程的学生选修人数(超过5人的课程才统计),查询结果按人数降序排列,若人数相同,按课程号升序排列
- (44)检索至少选修两门课程的学生学号
- (45)查询选修了全部课程的学生信息
- (46)查询各学生的年龄(周岁)
- (47)查询本周过生日的学生
- (48)查询下周过生日的学生
- (49)查询本月过生日的学生
- (50)查询12月份过生日的学生
一 创建mysql表之脚本
- 直接保存成文件,然后用SQLyog执行脚本就ok了
/*
SQLyog Professional v12.09 (64 bit)
MySQL - 5.7.29 : Database - school
*********************************************************************
*/
/*!40101 SET NAMES utf8 */;
/*!40101 SET SQL_MODE=''*/;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`school` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `school`;
/*Table structure for table `Course` */
DROP TABLE IF EXISTS `Course`;
CREATE TABLE `Course` (
`c_id` varchar(20) NOT NULL,
`c_name` varchar(20) NOT NULL DEFAULT '',
`t_id` varchar(20) NOT NULL,
PRIMARY KEY (`c_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Data for the table `Course` */
insert into `Course`(`c_id`,`c_name`,`t_id`) values ('01','语文','02'),('02','数学','01'),('03','英语','03');
/*Table structure for table `Score` */
DROP TABLE IF EXISTS `Score`;
CREATE TABLE `Score` (
`s_id` varchar(20) NOT NULL,
`c_id` varchar(20) NOT NULL,
`s_score` int(3) DEFAULT NULL,
PRIMARY KEY (`s_id`,`c_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Data for the table `Score` */
insert into `Score`(`s_id`,`c_id`,`s_score`) values ('01','01',80),('01','02',90),('01','03',99),('02','01',70),('02','02',60),('02','03',80),('03','01',80),('03','02',80),('03','03',80),('04','01',50),('04','02',30),('04','03',20),('05','01',76),('05','02',87),('06','01',31),('06','03',34),('07','02',89),('07','03',98);
/*Table structure for table `Student` */
DROP TABLE IF EXISTS `Student`;
CREATE TABLE `Student` (
`s_id` varchar(20) NOT NULL,
`s_name` varchar(20) NOT NULL DEFAULT '',
`s_birth` varchar(20) NOT NULL DEFAULT '',
`s_sex` varchar(10) NOT NULL DEFAULT '',
PRIMARY KEY (`s_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Data for the table `Student` */
insert into `Student`(`s_id`,`s_name`,`s_birth`,`s_sex`) values ('01','赵雷','1990-01-01','男'),('02','钱电','1990-12-21','男'),('03','孙风','1990-05-20','男'),('04','李云','1990-08-06','男'),('05','周梅','1991-12-01','女'),('06','吴兰','1992-03-01','女'),('07','郑竹','1989-07-01','女'),('08','王菊','1990-01-20','女');
/*Table structure for table `Teacher` */
DROP TABLE IF EXISTS `Teacher`;
CREATE TABLE `Teacher` (
`t_id` varchar(20) NOT NULL,
`t_name` varchar(20) NOT NULL DEFAULT '',
PRIMARY KEY (`t_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Data for the table `Teacher` */
insert into `Teacher`(`t_id`,`t_name`) values ('01','张三'),('02','李四'</