前言

此为真题,了解面试 是如何考察sql的

一、

五道sql面试真题
可以查询每名同学的最小分数,若最小分数大于80则符合题意 :
1.根据学员分组,看每个人的最低分
Select name,min(score) from mst_stu group by name;
五道sql面试真题
2.使用分组过滤 having 筛选出 符合要求的数据。
Select name,min(score)as min_s from mst_stu group by name having min_s >80 ;

二、

五道sql面试真题
思路是 单表单中自己的数据需要和自己的数据做比较,想到自联结的比较:
Select s1.,s2. from mst_weather as s1 join mst_weather as s2;
(此时没有联结条件,新的表为s1,s2的笛卡尔积)
五道sql面试真题

只需加上两个条件,代码实现:
Datediff()函数:计算两个日期之间的差值,前减后。
Select s1.,s2. from mst_weather as s1 join mst_weather as s2 on datediff(s1.date,s2.date)=1 and s1.temperature >s2.temperature。

五道sql面试真题
1.先查询每个主播的最大level
Select zhubo_id,max(level) from mst_zhubo group by zhubo_id;

2.查询出每个主播所有符合最大level的数据
Select *from mst_zhubo where(zhubo_id,level) in (Select zhubo_id,max(level) from mst_zhubo group by zhubo_id);注意:此时where的用法,where后面有两个字段,则in后面返回的数据也必须为两个字段。

3.然后再对该表分组,统计最小gap即可,代码实现:
Select zhubo_id,level,min(gap) from mst_zhubo where(zhubo_id,level) in (Select zhubo_id,max(level) from mst_zhubo group by zhubo_id) group by zhubo_id ,level;

五道sql面试真题
经典行转列类型,简单的字段添加即可:
Select class_id, max(case when grade = ‘primary’ then rate else 0 end) as ‘primary’,
max(case when grade = ‘middle’ then rate else 0 end) as ‘middle’,
max(case when grade = ‘high’ then rate else 0 end) as ‘high’
From mst_class group by class_id;

五道sql面试真题
考察修改数据操作。
注意:update 后面是可以进行任何查询语句,这个作用同等于from。
Update更新表,不能再set和where中用于子查询 即下面的up表不能再select语句中。
Uptate 也可以对多个表进行更新(sqlserver不行)。
1.先按题意设计表
Create table ‘msta’(
‘key’ varchar(10),’value’ varchar(10)
);
Create table ‘mstb’(
‘key’ varchar(10),’value’ varchar(10)
);

Insert into msta values(‘A’,’aaa’),(‘B’,’bbb’),(‘C’,’ccc’);
Insert into msta values(‘A’,’???’),(‘d’,’dwd’),(‘e’,’ccc’);

代码实现:update mst_b as up,
(
Select msta.,mstb. from msta join mstb on msta.key=mstb.key;
) as b
set up.value=b.value where up.key=b.key;

相关文章:

  • 2021-12-05
  • 2021-12-18
  • 2022-12-23
  • 2022-01-13
  • 2021-06-03
  • 2022-12-23
  • 2021-06-11
猜你喜欢
  • 2021-12-06
  • 2021-11-27
  • 2022-12-23
  • 2021-05-28
  • 2022-12-23
相关资源
相似解决方案