[프로그래밍] DataBase

[DATABASE] SELF JOIN, UNION, GROUP BY

JHVan 2024. 11. 12. 08:12

1. SELF JOIN

예시: 의사가 의사를 참조하는 경우

병원 데이터베이스에서 Doctors 테이블에는 의사와 그들의 Supervisor 의 정보가 들어 있을때,

의사가 자신의 상급 의사 정보를 조회하기 위해 SELF JOIN을 사용

 

Doctors 테이블

DoctorID DoctorName SupervisorID
1 Dr. Kim NULL
2 Dr. Lee 1
3 Dr. Park 1
4 Dr. Choi 2

 

SELF JOIN 예시 쿼리

코드 예시 : 
SELECT d1.DoctorName AS Doctor, d2.DoctorName AS Supervisor
FROM Doctors d1
LEFT JOIN Doctors d2 ON d1.SupervisorID = d2.DoctorID;

 

결과

Doctor Supervisor
Dr. Kim NULL
Dr. Lee Dr. Kim
Dr. Park Dr. Kim
Dr. Choi Dr. Lee

 

2. UNION

예시: 병원에서 의사와 간호사 목록을 하나의 리스트로 조회

의사와 간호사를 각각 저장하는 테이블에서

모든 의료진의 이름과 역할을 확인하고 싶을 때

UNION을 사용하여 Doctors와 Nurses 테이블을 결합

 

Doctors 테이블

DoctorID Name
1 Dr. Kim
2 Dr. Lee

 

Nurses 테이블

NurseID Name
1 Nurse Park
2 Nurse Choi

 

코드 예시 : 

SELECT Name, 'Doctor' AS Role FROM Doctors
UNION
SELECT Name, 'Nurse' AS Role FROM Nurses;

 

결과

Name Role
Dr. Kim Doctor
Dr. Lee Doctor
Nurse Park Nurse
Nurse Choi Nurse

 모든 의사와 간호사의 이름과 역할 반환

 

3. GROUP BY

예시: 환자 방문 내역을 각 진료 과목별로 그룹화하여 방문 수를 확인

병원의 Visits 테이블에 환자들이 방문한 진료 과목별 기록이 있습니다. 각 과목별로 방문 횟수를 파악하기 위해 GROUP BY를 사용할 수 있습니다.

 

Visits 테이블

VisitID PatientID Department
1 101 Cardiology
2 102 Orthopedics
3 103 Cardiology
4 104 Pediatrics
5 105 Cardiology

 

코드 예시 : 

 

SELECT Department, COUNT(*) AS VisitCount
FROM Visits
GROUP BY Department;

 

결과

Department VisitCount
Cardiology 3
Orthopedics 1
Pediatrics 1

각 진료 과목에 대한 방문 횟수 반환

'[프로그래밍] DataBase' 카테고리의 다른 글

[DATABASE] SQL 작성 순  (1) 2024.11.14
[DATABASE] ORACLE JOIN  (0) 2024.11.11
[DATABASE] ORACLE 함수와 표현식  (0) 2024.11.11
[DATABASE] ORACLE 연산자  (0) 2024.11.11
[DATABASE] ORACLE SQL  (3) 2024.11.11