SQL面试题。帮忙解答。谢谢。

2025-04-13 23:18:21
推荐回答(4个)
回答1:

(1):
select 姓名,科目,成绩
from t表 a
where not exists(select *
from t表 b
where b.成绩 < 80 and a.姓名 = b.姓名 and a.科目 = b.科目)
(2):
delete
from t表
where id not in(
select id
from t表 a
where id in(select min(id)
from t表 b
where a.姓名 = b.姓名 and a.科目 = b.科目 and a.成绩 = b.成绩)
)

回答2:

第一个的sql语句这样子写:select 姓名,科目,成绩 from 表名 where 成绩>80 group by 成绩

回答3:

1. select 姓名,科目,成绩 from t表 where 成绩>=80

2.这个第二道题出的有点问题吧,“删除除id不同外,其他信息重复的行”
姓名不一样, 成绩一样也删除?

回答4:

1、select 姓名,科目,成绩 from t where 姓名 not in (select 姓名 from t where 成绩 < 80)

2、delete from t where id in (select id from t a where id in (select max(id) from t b where a.姓名=b.姓名 and a.科目 = b.科目 and a.成绩 = b.成绩))