프로그래머스 | SQL 스터디 16

2024. 9. 18. 15:01·SQL/프로그래머스

SELECT

대장균들의 자식의수 구하기(Lv3)

문제 설명

​

문제

​

풀이

SELECT로 ID, CHILD_COUNT를 조회

 

JOIN에서 selfjoin으로 ID와 PARENT_ID를 LEFT JOIN으로 연결

* 개념적으로는 이렇게 구현해야 한다는 것을 알았지만, 방법을 잘 몰라 처음에는 WHERE ID=PARENT_ID로 구현함

WHERE ID = PARENT_ID의 의미:

  • 이 조건은 동일한 개체가 부모 개체와 자식 개체가 되도록 강제합니다.
  • 즉, 동일한 레코드의 ID 값과 PARENT_ID 값이 같아야 하는 경우를 찾는다는 의미가 됩니다.
  • 그러나, 문제에서는 부모 개체의 ID와 자식 개체의 PARENT_ID가 서로 다른 행에 있어야 합니다.

이런 문제점 때문에 self join으로 left join을 하는 것이 올바름! 

 

GROUP BY에서 P.ID로 그룹화

 

ORDER BY에서 P.ID로 오름차순 정렬

SELECT 
    P.ID, 
    COUNT(C.ID) AS CHILD_COUNT
FROM 
    ECOLI_DATA P
LEFT JOIN 
    ECOLI_DATA C ON P.ID = C.PARENT_ID
GROUP BY 
    P.ID
ORDER BY 
    P.ID;

 


대장균의 크기에 따라 분류하기1 (Lv3)

문제 설명

​

문제

​

풀이

WITH에서 SIZE_OF_COLONY별 분류를 설정

 

SELECT로 ID, SIZE를 조회

 

ORDER BY에서 ID를 오름차순 정렬

WITH SIZECASE AS (
    SELECT ID, 
        CASE
            WHEN SIZE_OF_COLONY <= 100 THEN 'LOW'
            WHEN (SIZE_OF_COLONY > 100 AND SIZE_OF_COLONY <= 1000) THEN 'MEDIUM' 
            WHEN SIZE_OF_COLONY > 1000 THEN 'HIGH'
        END AS SIZE
    FROM ECOLI_DATA
)

SELECT ID, SIZE
FROM SIZECASE
ORDER BY ID;

 

 

GROUP BY

부서별 평균 연봉 조회하기 (Lv3)

문제 설명

​

문제

 

풀이

SELECT에서 DEPT_ID, DEPT_NAME_EN, AVG_SAL을 조회

​

JOIN에서 공통 컬럼인 DEPT_ID로 두 테이블을 JOIN

 

GROUP BY에서 DEPT_ID, DEPT_NAME_EN으로 그룹화

 

ORDER BY에서 AVG_SAL을 내림차순 정렬

SELECT D.DEPT_ID, D.DEPT_NAME_EN, ROUND(AVG(E.SAL) ,0) AVG_SAL
FROM HR_DEPARTMENT D
JOIN HR_EMPLOYEES E ON E.DEPT_ID = D.DEPT_ID
GROUP BY D.DEPT_ID, D.DEPT_NAME_EN
ORDER BY AVG_SAL DESC;

 

String, Date

DATETIME에서 DATE로 형 변환(Lv2)

문제 설명

 

문제

​

풀이

SELECT에서 ANIMAL_ID, NAME, 날짜를 조회

* DATE_FORMAT :  DATE_FORMAT(date, format) 이런 형식으로 날짜의 형식을 변경할 때 사용하는 함수

​

ORDER BY에서 ANIMAL_ID 기준으로 오름차순 정렬

SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME,'%Y-%m-%d') 날짜
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
저작자표시 비영리 변경금지 (새창열림)

'SQL > 프로그래머스' 카테고리의 다른 글

프로그래머스 | SQL 스터디 18  (0) 2024.09.23
프로그래머스 | SQL 스터디 17  (1) 2024.09.20
프로그래머스 | SQL 스터디 15 (SUBSTIRNG)  (2) 2024.09.17
프로그래머스 | SQL 스터디 14 (Union, Union all)  (3) 2024.09.16
프로그래머스 | SQL 스터디 13  (1) 2024.09.15
'SQL/프로그래머스' 카테고리의 다른 글
  • 프로그래머스 | SQL 스터디 18
  • 프로그래머스 | SQL 스터디 17
  • 프로그래머스 | SQL 스터디 15 (SUBSTIRNG)
  • 프로그래머스 | SQL 스터디 14 (Union, Union all)
kimmalgu
kimmalgu
DA(데이터 분석가) 블로그
  • kimmalgu
    kimmalgu 님의 블로그
    kimmalgu
  • 전체
    오늘
    어제
    • 분류 전체보기 (53)
      • 통계 (3)
      • [패캠] 데이터분석 부트캠프 (10)
        • 프로젝트 (2)
        • 수업 정리 (8)
      • 파이썬 (8)
        • 통계전산처리 (7)
      • SQL (27)
        • 프로그래머스 (20)
        • HackerRank (5)
        • LeetCode (1)
      • 코테 (0)
      • 독후감 (5)
  • 블로그 메뉴

    • 글쓰기
    • 홈
    • 태그
    • 방명록
  • hELLO· Designed By정상우.v4.10.0
kimmalgu
프로그래머스 | SQL 스터디 16
상단으로

티스토리툴바