• 티스토리 홈
  • 프로필사진
    chantleman
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
chantleman
  • 프로필사진
    chantleman
    • 분류 전체보기 (329) N
      • 프로젝트 (1)
      • react (2)
      • 코딩테스트 (133)
        • lv0 (101)
        • lv1 (10)
        • lv2 (7)
        • lv3 (15)
      • 오류 (14)
      • 리눅스 (5)
      • 자바 (75)
        • spring (7)
      • js (35)
      • 오라클 (39)
        • PLSQL (3)
      • cs (5)
      • 도커 aws (3)
      • 단축키 (3)
      • 나만봐 (0)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • [프로그래머스 코딩테스트] MySQL Lv.2 분기별 분화된 대장균의 개체 수 구하기
        2024년 07월 04일
        • chantleman
        • 작성자
        • 2024.07.04.:53

         

        문제 설명

         

        대장균들은 일정 주기로 분화하며, 분화를 시작한 개체를 부모 개체, 분화가 되어 나온 개체를 자식 개체라고 합니다.

        다음은 실험실에서 배양한 대장균들의 정보를 담은 ECOLI_DATA 테이블입니다.

         

        ID : 대장균 개체의 ID

        PARENT_ID : 부모 개체의 ID

        SIZE_OF_COLONY : 개체의 크기 

        DIFFERENTIATION_DATE : 분화되어 나온 날짜

        GENOTYPE : 개체의 형질

         

        최초의 대장균 개체의 PARENT_ID는 NULL값

         


        문제

         

        각 분기(QUARTER)별 분화된 대장균의 개체의 총 수(ECOLI_COUNT)를 출력하는 SQL문을 작성해주세요. 이때 각 분기에는 'Q'를 붙이고 분기에 대해 오름차순으로 정렬해주세요. 대장균 개체가 분화되지 않은 분기는 없습니다.

         

         

         예를 들어 ECOLI_DATA 테이블이 다음과 같다면

         

        각 분기별로 분화된 대장균 개체는 다음과 같습니다.

        1분기 : ID1, ID3

        2분기 : ID2, ID4

        3분기 : ID5

        4분기 : ID6

         

        따라서 결과는 다음과 같아야 합니다.

         

         


        풀이

         

            select 
                case 
                    when month(differentiation_date)<=3 then '1Q'
                    when month(differentiation_date)<=6 then '2Q'
                    when month(differentiation_date)<=9 then '3Q'
                    else '4Q' 
                    end as quarter, 
                count(*) as ecoli_count 
            from ecoli_data 
            group by quarter order by quarter;

         

         

        case문은 end로 끝남

         

        case (when 조건문 then 출력결과) end 

        728x90

        '코딩테스트 > lv2' 카테고리의 다른 글

        [프로그래머스 코딩테스트] oracle Lv.2 진료과별 총 예약 횟수 출력하기  (0) 2024.10.18
        [프로그래머스 코딩테스트] oracle Lv.2 자동차 평균 대여 기간 구하기  (0) 2024.10.18
        [프로그래머스 코딩테스트] Oracle Lv.2 조건에 부합하는 중고거래 상태 조회하기  (1) 2024.07.08
        [프로그래머스 코딩테스트] MySQL Lv.2 특정 물고기를 잡은 총 수 구하기  (0) 2024.07.03
        [프로그래머스 코딩테스트] MySQL Lv.2 부모의 형질을 모두 가지는 대장균 찾기  (0) 2024.06.26
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바