sql 에서 group by 와 count 및 내부 연결 조회 활용
2491 단어 sql
질문 설명:
현재 3 장의 표: 각각
학생 정보 표 S (sno, sname)
과정 정보 표 C (cno, cname, cteacher)
학생 및 과정 관계 표 SC (sno, cno, scroce)
문제 1: 이명 선생님 이 가 르 치 는 과정 을 선택 과목 으로 이수 하지 않 은 모든 학생 의 이름 을 조회 합 니 다.
문제 2: 2 문 이상 미 합격 학생 이름 조회
질문 3: 선택 과목 '1' 도 선택 과목 '2' 도 선택 과목 으로 이수 한 학생 의 이름 을 조회 합 니 다.
주요 고찰: group by 와 inner join, having 조건 선별 및 count 함수 사용
group by 는 주로 결과 집합 을 그룹 으로 나 눈 다음 에 having 조합 으로 데 이 터 를 선별 합 니 다.
[/quote]
drop table S,SC,C
create table S(
sno varchar(15), --
sname varchar(15) --
)
create table C(
cno varchar(15), --
cname varchar(15), --
cteacher varchar(15) --
)
create table SC(
sno varchar(15), --
cno varchar(15), --
scroce float --
)
select * from S;
delete from S;
insert into S(sno,sname)values('s001','jerry');
insert into S(sno,sname)values('s002','tom');
insert into S(sno,sname)values('s003','jason');
delete from C;
select * from C;
insert into C(cno,cname,cteacher)values('c001','1',' ');
insert into C(cno,cname,cteacher)values('c002','2',' 0');
insert into C(cno,cname,cteacher)values('c003','3',' 1');
insert into C(cno,cname,cteacher)values('c004','4',' 2');
delete from SC;
select * from SC;
insert into SC(sno,cno,scroce)values('s001','c001',40);
insert into SC(sno,cno,scroce)values('s001','c002',50);
insert into SC(sno,cno,scroce)values('s002','c001',50);
insert into SC(sno,cno,scroce)values('s002','c003',50);
select
a.sno,a.sname,b.cno
from S as a
inner join SC as b on b.sno=a.sno
where not exists(
select * from SC where sno=b.sno and cno in(select cno from C where cteacher = ' ')
);
-- 2
select
a.sname
from S as a
inner join SC as b on b.sno=a.sno
where b.scroce<60
group by a.sname
having count(sname)>1;
-- 1 2
select
a.sname
from S a
inner join SC b on a.sno=b.sno
inner join C c on c.cno=b.cno
where b.cno in ('c001','c002')
group by a.sname
having count(a.sname)=2;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
깊이 중첩된 객체를 정확히 일치 검색 - PostgreSQL목차 * 🚀 * 🎯 * 🏁 * 🙏 JSON 객체 예시 따라서 우리의 현재 목표는 "고용주"사용자가 입력한 검색어(이 경우에는 '요리')를 얻고 이 용어와 정확히 일치하는 모든 사용자 프로필을 찾는 것입니다. 즐거운 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.