34,594
社区成员
发帖
与我相关
我的任务
分享
select SC.ID,Name,Coursename,Score
from Student,SC,Course
where Student.ID=SC.ID
and SC.CourseID=Course.CourseID
and SC.ID in
(select ID
From SC
where Score<=85
group by ID
having count(*)>=2)
and Score<=85
select css1.ID,Name,CourseName,Score
from Student,SC,Course,
(select ID
from SC
where Score<=85
group by ID
having count(*)>1)as css1,
where Student.ID=SC.ID
and SC.ID=css1.ID
and CourseID=SC.CourseID
and Score<=85
create table Student(ID varchar(20),Name varchar(20),Sex varchar(20),Age int,Department varchar(20));
create table Course (CourseID varchar(20),CourseName varchar(20),Credit varchar(20),CourseBefore varchar(20));
create table SC (ID varchar(20),CourseID varchar(20),Score dec);
insert into Student values('00001', '赵一', '男', 20, 'CS');
insert into Student values('00002', '钱二', '女', 19, 'EE');
insert into Student values('00003', '孙三', '男', 21, 'Design');
insert into Student values('00004', '李四', '男', 22, 'MATH');
insert into Student values('00005', '周五', '女', 20, 'IS');
insert into Student values('00006', '吴六', '男', 19, 'CS');
insert into Student values('00007', '郑七', '女', 20, 'MATH');
insert into Student values('00008', '王九', '男', 21, 'EE');
insert into Student values('00009', '孙三', '男', 20, 'Design');
insert into Student values('00010', '周五', '女', 19, 'IS');
insert into Course values('C1', '计算机引论', '2', null);
insert into Course values('C2', 'C语言', '3', 'C1');
insert into Course values('C3', '数据结构', '4', 'C2');
insert into Course values('C4', '数据库', '3', 'C3');
insert into Course values('C5', '信息系统', '3', 'C4');
insert into SC values('00001', 'C1', 95);
insert into SC values('00001', 'C2', 80);
insert into SC values('00001', 'C3', 84);
insert into SC values('00002', 'C1', 80);
insert into SC values('00002', 'C2', 85);
insert into SC values('00003', 'C1', 78);
insert into SC values('00003', 'C3', 70);
insert into SC values('00005', 'C2', 75);
insert into SC values('00005', 'C5', 88);
insert into SC values('00006', 'C3', 86);
insert into SC values('00006', 'C4', 95);
insert into SC values('00009', 'C1', 82);
insert into SC values('00009', 'C2', 90);
insert into SC values('00010', 'C3', 91);
有什么语句可以替代select * from SC group by ID having count(*)>1呢?就是完全不用group by来实现分组功能?
select * from sc t where exists(select 1 from sc where ID=t.ID and courseid<>t.courseid)
select a.name,c.coursename,b.score
from student a inner join sc b on a.id=b.id
inner join course c on b.courseid=c.courseid
where exists(select 1 from sc where id=b.id and score<=85 group by id having count(*)>1)
select a.name,c.coursename,b.score
from student a inner join sc b on a.id=b.id
inner join course c on b.courseid=c.courseid
where b.id in(select id from sc where score<=85 group by id having count(*)>1)