컴퓨터 활용/노년에 즐기는 코딩

[SQL 연습] 같은 주소에 살지만 학년이 다른 학생 두 명 비교

easyfly 2025. 10. 20. 07:44
반응형

같은 주소에 살지만 학년이 다른 학생 두 명 비교

 

이 SQL 문은 같은 주소에 살지만 학년이 다른 학생 두 명을 비교하여, 학년이 더 높은 학생과 낮은 학생의 이름을 짝지어 보여주는 쿼리입니다.


결과를 보면 ‘송윤아’와 ‘이영애’ 한 쌍이 나왔습니다.


🔍 쿼리 구조 분석

SELECT S1.이름, S2.이름
FROM 학생 S1
JOIN 학생 S2
ON S1.주소 = S2.주소
WHERE S1.학년 > S2.학년;

1️⃣ FROM 학생 S1 JOIN 학생 S2

  • 학생 테이블을 자기 자신과 조인(Self Join) 한 것입니다.
  • S1, S2는 같은 테이블의 두 별칭(alias)으로, 학생을 두 명씩 짝지어 비교하기 위함입니다.

2️⃣ ON S1.주소 = S2.주소

  • 같은 주소(즉, 같은 곳에 사는 학생들)끼리만 비교하도록 설정했습니다.
  • 예: 기숙사나 가족, 혹은 같은 자취방 등에 사는 경우를 찾는 조건입니다.

3️⃣ WHERE S1.학년 > S2.학년

  • 같은 주소 중에서, S1 학생의 학년이 S2 학생보다 높은 경우만 선택합니다.
  • 즉, 형·누나 또는 선배 관계를 의미할 수 있습니다.

4️⃣ SELECT S1.이름, S2.이름

  • 조건을 만족하는 두 학생의 이름을 출력합니다.
    • 왼쪽(S1.이름)은 학년이 높은 학생,
    • 오른쪽(S2.이름)은 학년이 낮은 학생입니다.

📊 실행 결과 해석

S1.이름 S2.이름
송윤아 이영애

→ 해석:
‘송윤아’와 ‘이영애’는 같은 주소에 살지만,
‘송윤아’의 학년이 ‘이영애’보다 높습니다.


💡 정리 요약

항목 설명
조인 형태 자기 조인(Self Join)
비교 기준 주소가 같고 학년이 다름
조건 S1.학년 > S2.학년
출력 내용 같은 주소 내에서 학년이 높은 학생과 낮은 학생 이름
결과 의미 선후배 혹은 형제 관계처럼 해석 가능

 

반응형