Programing/데이터베이스(MySQL) 8

[프로그래머스] 취소되지 않은 진료 예약 조회하기 (Level 4)

https://school.programmers.co.kr/learn/courses/30/lessons/132204 문제: PATIENT, DOCTOR 그리고 APPOINTMENT 테이블에서 2022년 4월 13일 취소되지 않은 흉부외과(CS) 진료 예약 내역을 조회하는 SQL문을 작성해주세요. 진료예약번호, 환자이름, 환자번호, 진료과코드, 의사이름, 진료예약일시 항목이 출력되도록 작성해주세요. 결과는 진료예약일시를 기준으로 오름차순 정렬해주세요. select apnt_no, pt_name, patient.pt_no, appointment.mcdp_cd, dr_name, apnt_ymd from appointment inner join patient on appointment.pt_no = patien..

[프로그래머스] 5월 식품들의 총매출 조회하기 (Level 4)

https://school.programmers.co.kr/learn/courses/30/lessons/131117 문제: FOOD_PRODUCT와 FOOD_ORDER 테이블에서 생산일자가 2022년 5월인 식품들의 식품 ID, 식품 이름, 총매출을 조회하는 SQL문을 작성해주세요. 이때 결과는 총매출을 기준으로 내림차순 정렬해주시고 총매출이 같다면 식품 ID를 기준으로 오름차순 정렬해주세요. select food_product.product_id, product_name, (price * sum(amount)) as total_sales from food_product inner join food_order on food_product.product_id = food_order.product_id wh..

[프로그래머스] 식품분류별 가장 비싼 식품의 정보 조회하기 (Level 4)

https://school.programmers.co.kr/learn/courses/30/lessons/131116 문제: FOOD_PRODUCT 테이블에서 식품분류별로 가격이 제일 비싼 식품의 분류, 가격, 이름을 조회하는 SQL문을 작성해주세요. 이때 식품분류가 '과자', '국', '김치', '식용유'인 경우만 출력시켜 주시고 결과는 식품 가격을 기준으로 내림차순 정렬해주세요. select category, price as max_price, product_name from food_product where category in ('과자', '국', '김치', '식용유') and price = ( select max(price) from food_product as comp where food_pro..

[프로그래머스] 보호소에서 중성화한 동물 (Level 4)

https://school.programmers.co.kr/learn/courses/30/lessons/59045 select ins.animal_id, ins.animal_type, ins.name from animal_ins as ins inner join animal_outs as outs on ins.animal_id = outs.animal_id where sex_upon_intake like 'Intact%' and (sex_upon_outcome like 'Spayed%' or sex_upon_outcome like 'Neutered%') order by ins.animal_id 문제: 보호소에 들어올 당시에는 중성화되지 않았지만, 보호소를 나갈 당시에는 중성화된 동물의 아이디와 생물 종, ..

[프로그래머스] MySQL Lv.3 전체 정답 풀이

대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 https://school.programmers.co.kr/learn/courses/30/lessons/151139 with rental as( select car_id, month(start_date) month from CAR_RENTAL_COMPANY_RENTAL_HISTORY where start_date between '2022-08-01' and '2022-10-31' ) SELECT month, car_id, count(*) as records from rental where car_id in ( select car_id from rental group by car_id having count(*) >= 5) group by month, c..

[프로그래머스] MySQL Lv.2 (정답률 80% 이하)

자동차 평균 대여 기간 구하기 SELECT car_id, average_duration from (select car_id, round(avg(datediff(end_date, start_date)), 1)+1 as average_duration from CAR_RENTAL_COMPANY_RENTAL_HISTORY group by car_id) as history where average_duration >= 7 order by average_duration desc, car_id desc 조건에 부합하는 중고거래 상태 조회하기 SELECT board_id, writer_id, title, price, case when status = 'SALE' then '판매중' when status = 'RESER..

[프로그래머스] MySQL Lv.1 (정답률 85% 이하)

조건에 부합하는 중고거래 댓글 조회하기 SELECT board.title, board.board_id, reply.reply_id, reply.writer_id, reply.contents, date_format(reply.created_date, '%Y-%m-%d') as created_date from used_goods_board as board inner join used_goods_reply as reply on board.board_id = reply.board_id where board.created_date like '2022-10%' order by reply.created_date, board.title 자동차 대여 기록에서 장기/단기 대여 구분하기 select history_id, c..

[Error Code] 1822. Failed to add the foreign key constraint

foreign key의 제약 조건을 만족하지 않았을 때 발생하는 에러 외래키로 지정한 경우, 참조되는 키가 primary 키이거나 unique 제약조건을 가지고 있어야만 한다 나의 경우, create table 상영관( 극장번호 integer not null, 상영관번호 integer check(상영관번호 between 1 and 10), 영화제목 varchar(20), 가격 integer check(가격 < 20000), 좌석수 integer, primary key (극장번호, 상영관번호), foreign key (극장번호) references 극장(극장번호) ); create table 예약( 극장번호 integer, 상영관번호 integer, 고객번호 integer, 좌석번호 integer uniq..