목록자료구조&알고리즘/프로그래머스 (8)
OneDev
-- PATIENT, DOCTOR 그리고 APPOINTMENT 테이블에서 -- 2022년 4월 13일 취소되지 않은 흉부외과(CS) 진료 예약 내역을 조회 -- 진료예약번호, 환자이름, 환자번호, 진료과코드, 의사이름, 진료예약일시 항목이 출력 -- a.apnt_no, p.pt_name, p.pt_no, a.mcdp_cd, d.dr_id, a.apnt_ymd -- 결과는 진료예약일시를 기준으로 오름차순 정렬 SELECT a.apnt_no ,p.pt_name ,p.pt_no ,a.mcdp_cd ,d.dr_name ,a.apnt_ymd FROM appointment a JOIN patient p ON p.pt_no = a.pt_no JOIN doctor d ON d.dr_id = a.mddr_id WHERE..
-- 생산일자가 2022년 5월인 식품들의 -- 식품 ID, 식품 이름, 총매출을 조회하는 SQL문 -- 결과는 총매출을 기준으로 내림차순 정렬 -- 총매출이 같다면 식품 ID를 기준으로 오름차순 정렬 SELECT o.product_id ,p.product_name ,sum(o.amount * p.price) as total_sales FROM food_order o JOIN food_product p ON o.product_id = p.product_id WHERE extract(month from o.produce_date) = 5 and extract(year from o.produce_date) = 2022 GROUP BY o.product_id, p.product_name ORDER BY tot..
-- 식품분류별로 가격이 제일 비싼 식품의 -- 분류, 가격, 이름을 조회하는 SQL문을 작성해주세요 -- 식품분류가 '과자', '국', '김치', '식용유'인 경우만 출력 -- 결과는 식품 가격을 기준으로 내림차순 정렬해주세요. SELECT category ,price as MAX_PRICE ,product_name FROM food_product WHERE (category, price) in (SELECT category ,max(price) as max_price FROM food_product WHERE category in ('과자', '국','김치','식용유') GROUP BY category) ORDER BY max_price desc;
-- 보호소에 들어올 당시에는 중성화1되지 않았지만, 보호소를 나갈 당시에는 중성화된 동물의 -- 아이디와 생물 종, 이름을 조회하는 아이디 순으로 조회하는 SQL 문을 작성 SELECT i.animal_id, i.animal_type, i.name FROM animal_ins i JOIN animal_outs o ON i.animal_id = o.animal_id WHERE i.sex_upon_intake like '%Intact%' and o.sex_upon_outcome not like '%Intact%' ORDER BY o.animal_id
[ 소스 코드 ] -- in.datetime out.dataetime -- 보호 시작일보다 입양일이 더 빠른 동물의 -- animal_id ,name -- 아이디와 이름을 조회하는 SQL문을 작성 -- 결과는 보호 시작일이 빠른 순으로 조회 SELECT i.animal_id ,i.name FROM animal_ins i JOIN animal_outs o ON i.animal_id = o.animal_id WHERE i.datetime > o.datetime ORDER BY i.datetime asc
[ 소스 코드 ] -- 2022년 1월의 카테고리 별 도서 판매량을 합산하고 -- 카테고리(CATEGORY), 총 판매량(TOTAL_SALES) 리스트를 출력 -- 결과는 카테고리명을 기준으로 오름차순 정렬 SELECT b.category ,sum(s.sales) as TOTAL_SALES FROM BOOK b JOIN BOOK_SALES s ON b.book_id = s.book_id WHERE extract(year from s.sales_date) = 2022 and extract(month from s.sales_date) = 1 GROUP BY b.category ORDER BY b.category
[ 소스 코드 ] -- 입양을 간 동물 중, -- 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회 -- 결과는 보호 기간이 긴 순으로 조회 SELECT animal_id ,name FROM ( SELECT i.animal_id ,i.name ,o.datetime - i.datetime as 보호기간 FROM animal_ins i JOIN animal_outs o ON i.animal_id = o.animal_id ORDER BY (o.datetime - i.datetime) desc ) WHERE rownum
[소스코드] -- ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블 -- ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블 -- 아직 입양을 못 간 동물 중, -- 가장 오래 보호소에 있었던 동물 3마리의 이름과 보호 시작일을 조회하는 SQL문을 작성 -- 결과는 보호 시작일 순으로 조회 SELECT * FROM (SELECT i.name ,i.datetime FROM animal_ins i LEFT JOIN animal_outs o ON i.animal_id = o.animal_id WHERE o.animal_id IS NULL ORDER BY i.datetime) WHERE rownum