Programmers-SQLpractice_230119

ouneno·2023년 1월 19일
0

Programmers-SQL

목록 보기
3/26
post-thumbnail

2023-01-19 목요일

개인적인 사정으로 인하여 mySQL -> Oracle 기반으로 변경하여 작성


1. 과일로 만든 아이스크림 고르기

문제

  1. 아이스크림의 총 주문량 3,000 이상
  2. 아이스크림 주 성분 과일
  3. 총 주문량이 높은 순서대로 조회

1. FIRST_HALF 테이블 전체 출력

SELECT 
* 
FROM FIRST_HALF


2. ICECREAM_INFO 테이블 전체 출력

SELECT 
* 
FROM ICECREAM_INFO


3. FIRST_HALF 테이블의 flavor 기준으로 출력

SELECT flavor
FROM FIRST_HALF


4. FIRST_HALF 테이블의 total_order가 3000이상인 경우 출력

SELECT flavor
FROM FIRST_HALF
WHERE total_order >= 3000


5. ICECREAM_INFO 테이블의 ingredient_type이 fruit_based일 경우

SELECT flavor 
FROM ICECREAM_INFO
WHERE ingredient_type = 'fruit_based'


6. total_order가 3000이상이면서, ingredient_type이 fruit_based일 경우

SELECT fh.flavor
FROM FIRST_HALF fh  LEFT JOIN ICECREAM_INFO ii ON fh.flavor = ii.flavor
WHERE fh.total_order >=3000 AND ii.ingredient_type = 'fruit_based'


7. 위의 결과 값에서 total_order를 DESC 순으로

SELECT fh.flavor
FROM FIRST_HALF fh LEFT JOIN ICECREAM_INFO ii ON fh.flavor = ii.flavor
WHERE fh.total_order >=3000 AND ii.ingredient_type = 'fruit_based'
ORDER BY fh.total_order DESC


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


문제

  1. 의사의 이름, 의사ID, 진료과, 고용일자 조회
  2. 진료과 CS or GS
  3. 고용일자 기준 내림차순 / 같다면 이름 기준 오름차순

1. Doctor 테이블 전체 출력

SELECT 
* 
FROM DOCTOR

2. dr_name, dr_id, mcdp_cd, hire_ymd 출력

SELECT dr_name
        , dr_id
        , mcdp_cd
        , hire_ymd
FROM DOCTOR

3. 진료과가 CS이거나 GS일 경우

SELECT dr_name
        , dr_id
        , mcdp_cd
        , hire_ymd
FROM DOCTOR
WHERE mcdp_cd = 'CS' OR mcdp_cd = 'GS'

4. hire_ymd 기준으로 내림차순 정렬 / 같을경우 dr_name 기준 오름차순 정렬

SELECT dr_name 이름
        , dr_id 
        , mcdp_cd
        , TO_CHAR (hire_ymd, 'YYYY-MM-DD')
FROM DOCTOR
WHERE mcdp_cd = 'CS' OR mcdp_cd = 'GS'
ORDER BY hire_ymd DESC, dr_name ASC

3. 3월에 태어난 여성 회원 목록 출력하기


문제

  1. ID, 이름, 성별, 생년월일 조회
  2. 생일이 3월인 여성 + 전화번호가 NULL일 경우 제외
  3. 회원ID를 기준으로 오름차순 정렬

1.MEMBER_PROFILE 테이블 전체 조회

SELECT 
* 
FROM MEMBER_PROFILE

2. member_id, member_name, gender, date_of_birth('YYYY-MM-DD') 조회

SELECT  member_id
        , member_name
        , gender
        , date_of_birth 
FROM MEMBER_PROFILE

3. 03월생 여성 출력

SELECT  member_id
        , member_name
        , gender
        , TO_CHAR (date_of_birth,'YYYY-MM-DD') AS date_of_birth
FROM MEMBER_PROFILE
WHERE 	GENDER = 'W' 
		AND TO_CHAR (date_of_birth,'MM') = '03'

4. 전화번호가 NULL일 경우 출력 제회

SELECT  member_id
        , member_name
        , gender
        , TO_CHAR (date_of_birth,'YYYY-MM-DD') AS date_of_birth
FROM MEMBER_PROFILE
WHERE   GENDER = 'W' 
        AND TO_CHAR (date_of_birth,'MM') = '03'
        AND TLNO IS NOT NULL

5. 회원ID 기준으로 오름차순

SELECT  member_id
        , member_name
        , gender
        , TO_CHAR (date_of_birth,'YYYY-MM-DD') AS date_of_birth
FROM MEMBER_PROFILE
WHERE   GENDER = 'W' 
        AND TO_CHAR (date_of_birth,'MM') = '03'
        AND TLNO IS NOT NULL
ORDER BY member_id ASC
profile
지속적인 성장을 추구하는 새싹 개발자입니다🌱

0개의 댓글