개발자공부일기
SQL 문법 문제(기초) Step10 본문
다음과 같은 직원(employees) 테이블과 부서(departments) 테이블이 있습니다.
- employees 테이블
id | department_id | name |
1 | 101 | 르탄이 |
2 | 102 | 배캠이 |
3 | 103 | 구구이 |
4 | 101 | 이션이 |
- departments 테이블
id | name |
101 | 인사팀 |
102 | 마케팅팀 |
103 | 기술팀 |
1.현재 존재하고 있는 총 부서의 수를 구하는 쿼리를 작성해주세요!
#내 답
SELECT name, COUNT(1)
FROM departments
GROUP BY name
#Chat GPT
SELECT COUNT(DISTINCT name) AS total_departments
FROM departments
2.모든 직원과 그들이 속한 부서의 이름을 나열하는 쿼리를 작성해주세요!
SELECT e.name,d.name
FROM employees e INNER JOIN departments d ON e.department_id = d.id
3.'기술팀' 부서에 속한 직원들의 이름을 나열하는 쿼리를 작성해주세요!
SELECT e.name
FROM employees e INNER JOIN departments d ON e.department_id = d.id
WHERE d.name = '기술팀'
4.부서별로 직원 수를 계산하는 쿼리를 작성해주세요!
SELECT d.name,COUNT(1)
FROM employees e INNER JOIN departments d ON e.department_id = d.id
GROUP BY d.name
5.직원이 없는 부서의 이름을 찾는 쿼리를 작성해주세요!
#내 답
SELECT d.name
FROM
(
SELECT d.name,COUNT(1)
FROM employees e INNER JOIN departments d ON e.department_id = d.id
GROUP BY d.name
)
WHERE COUNT(1) = 0
#Chat GPT
SELECT d.name AS department_name
FROM departments d
LEFT JOIN employees e ON d.id = e.department_id
WHERE e.id IS NULL;
LEFT JOIN을 사용하여 employees 테이블에 없는 부서들을 확인해야 합니다.
6.'마케팅팀' 부서에만 속한 직원들의 이름을 나열하는 쿼리를 작성해주세요!
SELECT e.name
FROM employees e INNER JOIN departments d ON e.department_id = d.id
WHERE d.name = '마케팅팀'
'SQL문제 풀기' 카테고리의 다른 글
문제 풀어보기 (0) | 2024.12.06 |
---|---|
SQL 문법 문제(기초) Step9 (0) | 2024.10.24 |
SQL 문법 문제(기초) Step8 (0) | 2024.10.22 |
SQL 문법 문제(기초) Step7 (0) | 2024.10.21 |
SQL 문법 문제(기초) Step6 (0) | 2024.10.18 |