[걷기반] SQL 문법 연습 10

2025. 1. 21. 19:33·내일배움캠프/사전캠프 과제

10) 이젠 테이블이 2개입니다 - 직원 & 부서 테이블

 

38.
현재 존재하고 있는 총 부서의 수를 구하는 쿼리를 작성해주세요!

나의 답 Select count(distinct name) From departments;
정답 SELECT COUNT(*) FROM departments;
오답 노트 현재 존재하고 있는 부서의 수를 구하려면, 지정된 컬럼이 null값이 있으면 안되니까 Count안에 *보다 name이 맞는 거 아닌가요!?
고민한 점 -

 

 

39.
모든 직원과 그들이 속한 부서의 이름을 나열하는 쿼리를 작성해주세요!

나의 답 Select e.name, d.name
From employees e left join departments d on e.department_id=d.id;
정답 SELECT e.name, d.name FROM employees e INNER JOIN departments d ON e.department_id = d.id;
오답 노트 -
고민한 점 부서가 없는 직원이 있을 수도 있으니까 left join을 사용했는데.. 이게 틀렸다고 볼 수 있는지 모르겠다.
문제에 주어진 테이블은 데이터가 안많아서 그런 직원이 없다는 걸 확인할 수 있지만.. 실제로 모든 직원의 부서를 확인하려면 left join이 좀 더 적절하지 않을까? 정답은 모르겠다. 

 

 

40.
'기술팀' 부서에 속한 직원들의 이름을 나열하는 쿼리를 작성해주세요!

나의 답 Select e.name
From employees e left join departments d on e.department_id=d.id
Where d.name='기술팀';
정답 SELECT e.name FROM employees e INNER JOIN departments d ON e.department_id = d.id WHERE d.name = '기술팀';
오답 노트 -
고민한 점 -

 

 

41.
부서별로 직원 수를 계산하는 쿼리를 작성해주세요!

나의 답 Select d.name, count(*)
From employees e left join departments d on e.department_id=d.id
Group by 1;
정답 SELECT d.name, COUNT(e.id) AS employee_count
FROM departments d LEFT JOIN employees e ON d.id = e.department_id GROUP BY d.id;
오답 노트 왜... 왜.. join에서 테이블 연결 순서를 바꿨지?
직원 수를 구해야 하니까 *가 아니라 e.id가 더 적합한 거 같다.
고민한 점 -



42.
직원이 없는 부서의 이름을 찾는 쿼리를 작성해주세요!

나의 답 Select d.name
From
(
Select d.name,
 count(*) a
From employees e left join departments d on e.department_id=d.id
Group by 1
)
Where a=0;
정답 SELECT d.name FROM departments d LEFT JOIN employees e ON d.id = e.department_id
WHERE e.id IS NULL;
오답 노트 Null을 활용해보자! 부서별 직원 수를 구하고 그 값이 0인 부서를 찾는 거 보다, e.id is null이 훨씬 직관적이고 간단하다.
고민한 점 -



43.
'마케팅팀' 부서에만 속한 직원들의 이름을 나열하는 쿼리를 작성해주세요!

나의 답 Select e.name
From employees e left join departments d on e.department_id=d.id
Where d.name='마케팅팀'
정답 SELECT e.name FROM employees e INNER JOIN departments d ON e.department_id = d.id
WHERE d.name = '마케팅팀';
오답 노트 -
고민한 점 -

 

'내일배움캠프 > 사전캠프 과제' 카테고리의 다른 글

[달리기반] SQL 문법 연습 1  (0) 2025.01.23
[걷기반] SQL 문법 연습 11_마지막 연습 문제  (0) 2025.01.21
[걷기반] SQL 문법 연습 9  (0) 2025.01.21
[걷기반] SQL 문법 연습 8  (0) 2025.01.21
[걷기반] SQL 문법 연습 7  (0) 2025.01.21
'내일배움캠프/사전캠프 과제' 카테고리의 다른 글
  • [달리기반] SQL 문법 연습 1
  • [걷기반] SQL 문법 연습 11_마지막 연습 문제
  • [걷기반] SQL 문법 연습 9
  • [걷기반] SQL 문법 연습 8
aggeeeee
aggeeeee
  φ(..;) 🔜 \_へ(▭-▭)✨
  • aggeeeee
    🥔 님의 블로그
    aggeeeee
    • 분류 전체보기 (155)
      • Today I Learned (25)
      • 내일배움캠프 (115)
        • 본캠프 과제 (17)
        • 사전캠프 과제 (23)
        • SQL 코드카타 (44)
        • 알고리즘 코드카타 (31)
      • 💻🚀 (15)
        • Java (7)
        • Git & GitHub (1)
        • CS (4)
        • Spring & SpringBoot (3)
  • 링크

  • 최근 글

  • 전체
    오늘
    어제
  • hELLO· Designed By정상우.v4.10.3
aggeeeee
[걷기반] SQL 문법 연습 10
상단으로

티스토리툴바