【数据库】MySQL经典面试题(练习) 一、删除除了学号字段以外,其它字段都相同的冗余记录,只保留一条!...) 17、按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示: 学生ID,,数据库,企业管理,英语,有效课程数,有效平均分 SELECT sid as...SUM(CASE WHEN cid ='001' THEN score ELSE 0 END)/SUM(CASE cid WHEN '001' THEN 1 ELSE 0 END) AS 企业管理平均分...,SUM(CASE WHEN cid = '002' THEN score ELSE 0 END)/SUM(CASE cid WHEN '002' THEN 1 ELSE 0 END) AS 马克思平均分...,SUM(CASE WHEN cid = '003' THEN score ELSE 0 END)/SUM(CASE cid WHEN '003' THEN 1 ELSE 0 END) AS UML平均分
变异系数 变异系数权重法 Min-Max标准化 Python代码实现+效果可视化 概念 变异系数 Coefficient of Variation 计算公式: 变 异 系 数 = 标 准 差 / 平...也不会低于80分,结果所有学生的分数在80~100,优劣学生之间相差不到20%;使用Min-Max标准化或许可以还原出学生之间真实差距 Python代码实现+效果可视化 原始数据(第1个表) 平均分...可理解为 全部特征的权重相等 5个员工平均分差别不大 员工1最弱逼,员工5最流弊,员工234相等 对平均分进行min-max标准化后,员工1的弱逼程度被放大 技术能力的变异系数最大,权重最高 MinMax...标准化后的数据的平均分(第2个表) 员工4>3>2(不再相等) 对min-max标准化后的数据进行变异系数法加权(第3个表) 员工1反而变得最流弊,员工5反而变得最弱比 from pandas import...对原始数据进行Min-Max标准化 mm: ndarray = minmax_scale(df[df.columns[1:]]) print(mm) # Min-Max标准化后的数据与权重进行矩阵乘法,计算出总分
SC where C#='002'); 17、按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示: 学生ID,,数据库,企业管理,英语,有效课程数,有效平均分...SELECT SUM(CASE WHEN C# ='001' THEN score ELSE 0 END)/SUM(CASE C# WHEN '001' THEN 1 ELSE 0 END) AS 企业管理平均分...,SUM(CASE WHEN C# = '002' THEN score ELSE 0 END)/SUM(CASE C# WHEN '002' THEN 1 ELSE 0 END) AS 马克思平均分...选择数据库类型为MySQL 把建表语句和插入的语句都放入 “Build Schema” Build 一下即成功建立数据库表 再到 “Run SQL” 中执行查询语句即可,非常方便 Create table...DepartmentId,Salary; 方法三(只适用于SQL Server中,可用“TOP”关键字): (和方法一差不多,也是“相关子查询”,只不过用了top关键字,只适用于SQL Server,MySQL
SC where C#='002'); 17、按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示: 学生ID,,数据库,企业管理,英语,有效课程数,有效平均分...SELECT SUM(CASE WHEN C# ='001' THEN score ELSE 0 END)/SUM(CASE C# WHEN '001' THEN 1 ELSE 0 END) AS 企业管理平均分... ,SUM(CASE WHEN C# = '002' THEN score ELSE 0 END)/SUM(CASE C# WHEN '002' THEN 1 ELSE 0 END) AS 马克思平均分... ,SUM(CASE WHEN C# = '003' THEN score ELSE 0 END)/SUM(CASE C# WHEN '003' THEN 1 ELSE 0 END) AS UML平均分... ,SUM(CASE WHEN C# = '004' THEN score ELSE 0 END)/SUM(CASE C# WHEN '004' THEN 1 ELSE 0 END) AS 数据库平均分
SC where C#='002'); 17、按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示:学生ID,,数据库,企业管理,英语,有效课程数,有效平均分...SELECT SUM(CASE WHEN C# ='001' THEN score ELSE END)/SUM(CASE C# WHEN '001' THEN ELSE END) AS 企业管理平均分...,SUM(CASE WHEN C# = '002' THEN score ELSE END)/SUM(CASE C# WHEN '002' THEN ELSE END) AS 马克思平均分...,SUM(CASE WHEN C# = '003' THEN score ELSE END)/SUM(CASE C# WHEN '003' THEN ELSE END) AS UML平均分...,SUM(CASE WHEN C# = '004' THEN score ELSE END)/SUM(CASE C# WHEN '004' THEN ELSE END) AS 数据库平均分
SC where C#='002'); 17、按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示: 学生id,,数据库,企业管理,英语,有效课程数,有效平均分...select sum(case when C# ='001' then score else 0 end)/sum(case C# when '001' then 1 else 0 end) as 企业管理平均分...马克思及格百分数 ,sum(case when C# = '003' then score else 0 end)/sum(case C# when '003' then 1 else 0 end) as uml平均分...及格百分数 ,sum(case when C# = '004' then score else 0 end)/sum(case C# when '004' then 1 else 0 end) as 数据库平均分...then 1 else 0 end)/sum(case when C# = '004' then 1 else 0 end) as 数据库及格百分数 from SC 21、查询不同老师所教不同课程平均分从高到低显示
文件路径 /* Navicat Premium Data Transfer Source Server : localhost Source Server Type : MySQL...50624 Source Host : localhost Source Database : sqlexam Target Server Type : MySQL...老师课的同学的学号、姓名; 思路: 先查到“李平老师”老师教的所有课ID 获取选过课的所有学生ID 学生表中筛选 select * from...where course_id = 2 ) 17、按平均成绩从低到高 显示所有学生的“语文”、“数学”、“英语”三门的课程成绩,按如下形式显示: 学生ID,语文,数学,英语,有效课程数,有效平均分...END)/count(1)*100 as percent from score group by course_id order by avgnum asc,percent desc; 20、课程平均分从高到低显示
14 ) 15 ) ①测试数据教师表中,叶平老师只有一门课 image.png ②修改测试数据教师表,将T#=2的TName也改为叶平,叶平就有两门主讲课程了...c.T#=t.T# and t.Tname='叶平' ) ? ...(17)按平均成绩从低到高显示所有学生的“语文”、“数学”、“英语”三门的课程成绩,按如下形式显示: 学生ID,语文,数学,英语,有效课程数,有效平均分; 1 select t.S# as '学生ID'...Score from SC where S#=t.S# and C#='004') as '英语', 5 COUNT(t.C#) as '有效课程数', 6 AVG(t.Score) as '有效平均分...SUM(CASE WHEN C#='003' THEN Score ELSE 0 END)/SUM(CASE C# WHEN '003' THEN 1 ELSE 0 END) as 'OO&UML平均分
#单表查询 select Cno,avg(Degree) from Score group by Cno; 12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。...这个特殊的SQL语句检索过程大致如下: 取出首条记录的a.cno用作过滤,子查询里以avg函数得到该课程的平均分,主查询以分数比对平均分,满足条件保留否则抛弃(degree小于平均分的留下); 跟着判断父查询表下一条记录...4、查询姓“李”的老师的个数; #还需要去重 select count(distinct(Tname)) from Teacher where Tname like '李%'; 5、查询没学过“叶平”...7、查询学过“叶平”老师所教的所有课的同学的学号、姓名; select Sno,Sname from Student where Sno in ( select Sno from Score where...'103') group by Sno having count(*) = (select count(*) from Score where Sno='103') ); 13、把“SC”表中“叶平”
简介 在开发中,我们需要将一个List数组按照每组几个,平均分成若干份,如果size数量不够平均分,前面满足的会分满,剩下的分到最后一个组,例如:6个,平均每组2个。就是2,2,2。...代码如下 /** * 将一个List均分成n个list,主要通过偏移量来实现的 * * @param source 源集合 * @param limit 最大值...listCount = (source.size() - 1) / limit + 1; int remaider = source.size() % listCount; // (先计算出余数
在一些比赛中,为了公平起见,算法端会在评委给出的分数里面去掉一个最高分和一个最低分,再求平均分,平均分即是选手的最后得分。...t), (SELECT MAX(score) FROM t) ) 上面的 SQL 还存在一点问题,当最高分或者最低分的分值存在多个时,使用这个方法计算出来的最后得分是不对的...score) - MIN(score) - MAX(score)) / (COUNT(*) - 2) AS final_score FROM t 即使存在重复的最高分或最得分,用这个方法计算出来的最后得分也是正确的
Mysql从8.0版本开始,也和Sql Server、Oracle一样支持在查询中使用窗口函数,本文将根据官方文档,通过实例介绍窗口函数并举例分组排序函数的使用。...以下通过计算当前行的前两行的平均值计算分数的移动平均分数。...下面我们使用RANGE对每个分区内从第一行到当前行计算平均值,可以看到由于RANGE根据当前值来确定行,张三的第二行就已经出现了三门的均分,对于三门分数不同的李四,滑动平均值得结果没有变化。...ROW: 当前行 UNBOUNDED PRECEDING: 区间的第一行 UNBOUNDED FOLLOWING:区间的最后一行 N PRECEDING: 当前行之前的N行,可以是数字,也可以是一个能计算出数字的表达式...N FOLLOWING:当前行之后的N行,可以是数字,也可以是一个能计算出数字的表达式 如果没指定帧的话,默认的frame取决于ORDER BY。
对于数据倾斜Join的优化原理 1、对数据抽样 2、根据样本数据,估计出某个key的所有的记录数以及所占的总内存,pig.skewedjoin.reduce.memusage 控制reduce消耗内存比例,再计算出某个...(swps,4,5)(说明:,, ) 4、自定义Patitioner,读取索引,并将key平均分配到...比如:(swpv,0,3)将swpv平均分配到 编号为0-3的reduce中。
) # 纵向拼接data中的df数据 df = pd.concat(data, axis=0).reset_index(drop=True) # 按照'姓名'列进行分组,并计算每个姓名的总分和平均分...# result = df.groupby('姓名').agg({'总分': 'sum', '平均分': 'mean'}).reset_index().sort_values(by="平均分", ascending...=False) result = df.groupby('姓名', as_index=False).agg(总分=('总分', 'sum'), 平均分=('总分', 'mean')).sort_values...(by='平均分', ascending=False) # result = df.groupby('姓名', as_index=False).agg(总分=('总分', 'sum'), 平均分=('总分...粉丝自己手动也计算出来了,结果和程序跑出来的吻合! 三、总结 大家好,我是皮皮。
平凯数据库主要包含以下核心优势:● 自主研发,代码级可控。平凯数据库核心代码全部自研;● 平凯数据库高度兼容 MySQL 协议和生态,能够平滑迁移替换 MySQL 数据库。...二、平凯数据库发展路线下面来看一下平凯数据库的发展路线。 现阶段,平凯数据库在 TiDB 内核的基础上新增支持了如下特性:● 兼容 MySQL 存储过程。...有一些用户过去使用了 MySQL 存储过程的特性,在迁移过程中,平凯数据库支持 MySQL 的存储过程,方便业务的迁移;● 平凯数据库是第一批支持国标 GB18030-2022 标准测试的数据库;● 支持...MySQL 实例上整合到一个平凯数据库集群。...左侧是该公司从前使用的多个 MySQL 实例方案,有多个 MySQL 节点,多个库,多个实例。
s.sid = sc.sid; 4、查询姓‘李’的老师的个数: select count(tname) from teacher where tname like '李%'; 5、查询没有学过“叶平”...from course as c left join teacher as t on c.tid = t.tid where t.tname = '叶平'...) ); 6、查询学过“叶平”老师所教的所有课的同学的学号、姓名: select s.sid,s.sname from student as s where s.sid in ( select...sc where cid='002'); 17、按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示:学生ID,数据库,企业管理,英语,有效课程数,有效平均分...count(*); 20、查询如下课程平均成绩和及格率的百分数(用”1行”显示): 企业管理(001),马克思(002),OO&UML (003),数据库(004): 21、查询不同老师所教不同课程平均分从高到低显示
聚合函数 sum() 求和 avg() 求平均值 max() 求最大值 min() 求最小值 count() 求记录数 # 语文最高分 mysql...| 语文最大值 | +------------+ | 88 | +------------+ 1 row in set (0.00 sec) #求语文总分、语文平均分...、语文最低分、总人数 mysql> select max(ch) 语文最高分,min(ch) 语文最低分,sum(ch) 语文总分,avg(ch) 语文平均分,count(*) 总人数 from stu...; +------------+------------+----------+------------+--------+ | 语文最高分 | 语文最低分 | 语文总分 | 语文平均分 |
like '李%' 2, select count(1) from (select tid from teacher where tname like '李%') as B 6丶查询没学过‘叶平’...老师课的同学的学号,姓名: 思路: 先查到‘李平老师’所教的所有课的ID 获取选过课的所有学生ID 学生表中筛选 select * from student where...join student on B.student_id = student.sid group by student_id having count(student_id) > 1 8丶查询学过‘叶平’...score where course_id = 2 ) 17丶按平均成绩从低到高显示所有学生的‘语文’,‘数学’,‘英语’三门课程成绩,按如下形式显示:学生ID,语文,数学,英语,有效课程,有效平均分...END)/count(1) * 100 as percent from score group by course_id order by avgnum asc,percent desc; 20丶课程平均分从高到低显示
一、温馨提示 在dos窗口登录mysql,这里面使用库,给库中表添加一条中文数据 —- 会出现插入数据有问题,中文错误 这是因为: 1 、 在dos窗口中,默认的编码格式gbk,而mysql服务器软件使用的编码...=(和java的一样) MySQL里面的不等于是: 查询年龄不等于20 岁的人的字段 SELECT * FROM student3 WHERE age!...SELECT AVG(math) AS '数学平均分' FROM student3; -- 获取数学成绩最高/低分 SELECT MAX(math) AS '数学组高分',MIN(math) AS...'最低分'FROM student3; -- 查询学生数学成绩最高分的学生信息---复合函数+聚合函数 -- 1.先查出最高平均分 2.再查出最高分的人 3.最高分的人=最高平均分的 SELECT....先查出数学的平均分 SELECT * FROM student3 WHERE math>(SELECT AVG(math) FROM student3); -- 查询数学成绩大于数学平均分的学生信息并且总分
领取专属 10元无门槛券
手把手带您无忧上云