SQL

[프로그래머스/MySQL] 고양이와 개는 몇 마리 있을까 & 흉부외과 또는 일반외과 의사 목록 출력하기 & 카테고리 별 상품 개수 구하기

2023. 7. 28. 12:57
목차
  1. 1. 고양이와 개는 몇 마리 있을까 
  2. 2. 흉부외과 또는 일반외과 의사 목록 출력하기
  3. 3. 카테고리 별 상품 개수 구하기 
728x90

 

1. 고양이와 개는 몇 마리 있을까 

https://school.programmers.co.kr/learn/courses/30/lessons/59040

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제

동물 보호소에 들어온 동물 중 고양이와 개가 각각 몇 마리인지 조회하는 SQL문을 작성해주세요. 이때 고양이를 개보다 먼저 조회해주세요.

SELECT ANIMAL_TYPE, COUNT(ANIMAL_ID)
    FROM ANIMAL_INS
    GROUP BY ANIMAL_TYPE
    ORDER BY ANIMAL_TYPE;
  • GROUP BY를 통해 카테고리 별로 분류 후 COUNT하여 각 카테고리 별로 몇 마리인지 출력했다.

 


 

2. 흉부외과 또는 일반외과 의사 목록 출력하기

https://school.programmers.co.kr/learn/courses/30/lessons/132203

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제

DOCTOR 테이블에서 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID, 진료과, 고용일자를 조회하는 SQL문을 작성해주세요. 이때 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해주세요.

SELECT DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD, '%Y-%m-%d') AS HIRE_YMD
    FROM DOCTOR
    WHERE MCDP_CD = 'CS' OR MCDP_CD = 'GS'
    ORDER BY HIRE_YMD DESC, DR_NAME ASC
  • DATE 형식임에도 DATE_FORMAT으로 형식을 지정해주지 않으면 TIME이 지정되어 있지 않음에도 '연-월-일- 00:00:00' 으로  출력이 됐다. 그래서 DATE_FORMAT 함수를 사용하여 형식을 맞춰주었다.
  • ORDER BY에서 문제에 맞게 순서대로 정렬될 수 있게 정렬 조건을 나타냈다.

 


 

3. 카테고리 별 상품 개수 구하기 

https://school.programmers.co.kr/learn/courses/30/lessons/131529

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제

PRODUCT 테이블에서 상품 카테고리 코드(PRODUCT_CODE 앞 2자리) 별 상품 개수를 출력하는 SQL문을 작성해주세요. 결과는 상품 카테고리 코드를 기준으로 오름차순 정렬해주세요.

SELECT LEFT(PRODUCT_CODE, 2) AS CATEGORY, COUNT(PRODUCT_ID) AS PRODUCTS
    FROM PRODUCT
    GROUP BY CATEGORY
    ORDER BY CATEGORY;
  • 현재 상품 카테고리 코드는 A1000011, C3000002 등의 형식으로 나타나서 'A1', 'C3' 으로 앞 2자리를 잘라서 카테고리로 치환시켜야 했다. 이때 사용한 방식이 LEFT 함수를 사용한 것이었다. MySQL에서 문자열을 슬라이싱 하는 방법에는 3가지 함수(LEFT, SUBSTRING, RIGHT)가 있다.
  • LEFT(컬럼명, number), RIGHT(컬럼명, NUMBER) 함수는 해당 컬럼의 문자열을 왼쪽에서/ 오른쪽에서 number만큼 자른다.
  • SUBSTRING(컬럼명, start, length) 함수는 중간에 있는 문자열만 자를 수도 있다. start 지점에서 length만큼 문자열을 슬라이싱 해준다.
728x90

'SQL' 카테고리의 다른 글

[프로그래머스/MySQL] 진료과별 총 예약 횟수 출력하기 & 오랜 기간 보호한 동물(1) & 있었는데요 없었습니다  (0) 2023.08.01
[프로그래머스/MySQL] 12세 이하인 여자 환자 목록 출력하기 & 입양 시각 구하기(1) & 인기있는 아이스크림  (0) 2023.08.01
[프로그래머스/MySQL] 이름이 없는 동물의 아이디 & 조건에 맞는 회원수 구하기 & 중성화 여부 파악하기  (0) 2023.07.28
[프로그래머스/MySQL] 가장 비싼 상품 구하기 & DATETIME에서 DATE로 형 변환 & 가격이 제일 비싼 식품의 정보 출력하기  (0) 2023.07.28
[프로그래머스/MySQL] NULL 처리하기 & 강원도에 위치한 생산공장 목록 출력하기 & 경기도에 위치한 식품창고 목록 출력하기  (0) 2023.07.28
  1. 1. 고양이와 개는 몇 마리 있을까 
  2. 2. 흉부외과 또는 일반외과 의사 목록 출력하기
  3. 3. 카테고리 별 상품 개수 구하기 
'SQL' 카테고리의 다른 글
  • [프로그래머스/MySQL] 진료과별 총 예약 횟수 출력하기 & 오랜 기간 보호한 동물(1) & 있었는데요 없었습니다
  • [프로그래머스/MySQL] 12세 이하인 여자 환자 목록 출력하기 & 입양 시각 구하기(1) & 인기있는 아이스크림
  • [프로그래머스/MySQL] 이름이 없는 동물의 아이디 & 조건에 맞는 회원수 구하기 & 중성화 여부 파악하기
  • [프로그래머스/MySQL] 가장 비싼 상품 구하기 & DATETIME에서 DATE로 형 변환 & 가격이 제일 비싼 식품의 정보 출력하기
스연
스연
공부 내용 정리 중 (~ ̄▽ ̄)~
데굴데굴✍️🤔공부 내용 정리 중 (~ ̄▽ ̄)~
스연
데굴데굴✍️🤔
스연
전체
오늘
어제
  • Categories (69)
    • 알고리즘 (33)
    • SQL (27)
    • Data Engineering (2)
    • Back-End (0)
    • CS (0)
    • KT AIVLE school (7)
    • 논문 (0)
    • 자격증 (0)
      • 오픽 (0)
    • 뉴스 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • sql
  • 프로그래머스
  • 에이블스쿨
  • hackerrank
  • 이분탐색
  • 티스토리챌린지
  • BFS
  • 코드트리
  • 백준
  • 코딩테스트
  • 파이썬
  • KT에이블스쿨3기
  • 오블완
  • 콜라스추측
  • 실버
  • 알고리즘
  • 에이블스쿨AI
  • mysql
  • KT에이블스쿨
  • 해커랭크

최근 댓글

최근 글

hELLO · Designed By 정상우.
스연
[프로그래머스/MySQL] 고양이와 개는 몇 마리 있을까 & 흉부외과 또는 일반외과 의사 목록 출력하기 & 카테고리 별 상품 개수 구하기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.