Algorithm/SQL 9

[SQL] JOIN > 없어진 기록 찾기(Lv.3)

[문제] ANIMAL_INS : 동물 보호소에 들어온 기록 ANIMAL_OUTS : 동물 보호소에서 나간 기록 천재 지변으로 정보 삭제 -> 나간 기록만 있는 동물의 ID와 이름을 조회하기 [풀이] SELECT t1.ANIMAL_ID, t1.NAME FROM ANIMAL_OUTS as t1 LEFT JOIN ANIMAL_INS as t2 ON t1.ANIMAL_ID = t2.ANIMAL_ID WHERE t2.ANIMAL_ID IS NULL ORDER BY t1.ANIMAL_ID ASC; 이거보고 JOIN 공부했다 ,,, 발그림!!!!!!!!!!!!!!!!!!!! 하여튼 INS의 여집합 U OUTS 라서 LEFT JOIN과 WHERE ~ IS NULL 로 표현했따

Algorithm/SQL 2023.12.08

[SQL] JOIN > 상품 별 오프라인 매출 구하기

[문제] PRODUCT 테이블과 OFFLINE_SALE 테이블을 연계해서 상품코드 별 매출액(판매가 X 판매량) 합계 출력하는 SQL문 작성하기, 매출액 기준 내림차순, 상품코드 기준 오름차순 PRODUCT_IDPRODUCT_CODEPRICE 1 A1000011 15000 2 A1000045 8000 3 C3000002 42000 OFFLINE_SALE_IDPRODUCT_IDSALES_AMOUNTSALES_DATE 1 1 2 2022-02-21 2 1 2 2022-03-02 3 3 3 2022-05-01 4 2 1 2022-05-24 5 1 2 2022-07-14 6 2 1 2022-09-22 [풀이] SELECT t1.PRODUCT_CODE, SUM(t2.SALES_AMOUNT*t1.PRICE) as ..

Algorithm/SQL 2023.12.07

[SQL] GROUP BY > 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기

[문제] CAR_RENTAL_COMPANY_CAR 테이블에서 '통풍시트', '열선시트', '가죽시트' 중 하나 이상 옵션이 포함된 자동차가 종류 별로 몇 대인지 출력하는 SQL 쿼리 작성하기, 수에 대한 컬럼은 'CARS', 오름차순 정렬 CAR_IDCAR_TYPEDAILY_FEEOPTIONS 1 세단 16000 가죽시트,열선시트,후방카메라 2 SUV 14000 스마트키,네비게이션,열선시트 3 SUV 22000 주차감지센서,후방카메라 4 트럭 35000 주차감지센서,네비게이션,열선시트 5 SUV 16000 가죽시트,네비게이션,열선시트,후방카메라,주차감지센서 [풀이] SELECT CAR_TYPE, COUNT(CAR_ID) FROM CAR_RENTAL_COMPANY_CAR WHERE INSTR(OPTIONS..

Algorithm/SQL 2023.12.07

[SQL] GROUP BY > 동명 동물 수 찾기 (Lv.2)

[문제] ANIMAL_INS 테이블에서 두 번 이상 쓰인 동물 이름을 조회하는 SQL 작성 ANIMAL_IDANIMAL_TYPEDATETIMEINTAKE_CONDITIONNAMESEX_UPON_INTAKE A396810 Dog 2016-08-22 16:13:00 Injured Raven Spayed Female A377750 Dog 2017-10-25 17:17:00 Normal Lucy Spayed Female A355688 Dog 2014-01-26 13:48:00 Normal Shadow Neutered Male A399421 Dog 2015-08-25 14:08:00 Normal Lucy Spayed Female A400680 Dog 2017-06-17 13:29:00 Normal Lucy Spa..

Algorithm/SQL 2023.12.07

[SQL] SELECT > 12세 이하 여자 환자 목록 출력하기

문제 PATIENT 테이블에서 12세 이하인 여자환자의 환자이름, 환자번호, 성별코드, 나이, 전화번호를 조회하는 SQL문을 작성해주세요. 이때 전화번호가 없는 경우, 'NONE'으로 출력시켜 주시고 결과는 나이를 기준으로 내림차순 정렬하고, 나이 같다면 환자이름을 기준으로 오름차순 정렬해주세요. 예시 PATIENT 테이블이 다음과 같을 때 PT_NO PT_NAME GEND_CD AGE TLNO PT22000003 브라운 M 18 01031246641 PT22000004 크롱 M 7 NULL PT22000006 뽀뽀 W 8 NULL PT22000009 한나 W 12 01032323117 PT22000012 뿡뿡이 M 5 NULL PT22000013 크리스 M 30 01059341192 PT22000014..

Algorithm/SQL 2023.03.31

[SQL] SELECT > 흉부외과 또는 일반외과 의사 목록 출력하기

문제 DOCTOR 테이블에서 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID, 진료과, 고용일자를 조회하는 SQL문을 작성해주세요. 이때 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해주세요. [풀이] 이제 date 형식 다루기 장인이당 ㅎㅎㅎㅎㅎ 잊지말자 MySQL은 DATE_FORMAT(데이터, 형식) Oracle은 TO_CHAR(데이터, 형식) # MySQL SELECT DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD, '%Y-%m-%d') as HIRE_TMD FROM DOCTOR WHERE MCDP_CD = 'CS' or MCDP_CD = 'GS' ORDER BY HIRE_YMD DESC, ..

Algorithm/SQL 2023.03.31

[SQL] SELECT > 조건에 맞는 도서 리스트 출력하기

문제 BOOK 테이블에서 2021년에 출판된 '인문' 카테고리에 속하는 도서 리스트를 찾아서 도서 ID(BOOK_ID), 출판일 (PUBLISHED_DATE)을 출력하는 SQL문을 작성해주세요. 결과는 출판일을 기준으로 오름차순 정렬해주세요. 예시 예를 들어 BOOK 테이블이 다음과 같다면 BOOK_IDCATEGORYAUTHOR_IDPRICEPUBLISHED_DATE 1 인문 1 10000 2020-01-01 2 경제 2 9000 2021-02-05 3 인문 2 11000 2021-04-11 4 인문 3 10000 2021-03-15 5 생활 1 12000 2021-01-10 조건에 속하는 도서는 도서 ID 가 3, 4인 도서이므로 다음과 같습니다. BOOK_IDPUBLISHED_DATE 3 2021-0..

Algorithm/SQL 2023.03.31

[SQL] SELECT > 과일로 만든 아이스크림 고르기 (Lv.1)

문제 상반기 아이스크림 총주문량이 3,000보다 높으면서 아이스크림의 주 성분이 과일인 아이스크림의 맛을 총주문량이 큰 순서대로 조회하는 SQL 문을 작성해주세요. [풀이] 이 문제는 넘 쉬워서 원트에 성공했다!! 한 번 기억 되살리니 쉽네 ㅋ 여기서 MySQL이랑 Oracle 차이는 as 말고는 없당 재미써 # MySQL SELECT table2.FLAVOR FROM FIRST_HALF as table1 JOIN ICECREAM_INFO as table2 ON table1.FLAVOR = table2.FLAVOR WHERE table1.TOTAL_ORDER > 3000 AND table2.INGREDIENT_TYPE='fruit_based' # Oracle SELECT table2.FLAVOR FROM..

Algorithm/SQL 2023.03.29

[SQL] SELECT > 조건에 부합하는 중고거래 댓글 조회하기 (Lv.1)

문제 USED_GOODS_BOARD와 USED_GOODS_REPLY 테이블에서 2022년 10월에 작성된 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일을 조회하는 SQL문을 작성해주세요. 결과는 댓글 작성일을 기준으로 오름차순 정렬해주시고, 댓글 작성일이 같다면 게시글 제목을 기준으로 오름차순 정렬해주세요. [풀이] 갑자기 SQL 공부가 하고 싶어서 1일 1SQL을 시작하기로 했다 (뜬금) 왠진 모르겠음,, 그냥,, 그냥임,, 암튼 그냥임,,^_^ 역시 MySQL이랑 Oracle은 문법이 많이 다르다ㅠㅠ 일단 MySQL은 as로 표현해줘야할거같고, 날짜표현시 DATE_FORMAT(데이터, 형식), ASC/DESC 써야되는거같고 Oracle은 as 안써도 표현이 되고..

Algorithm/SQL 2023.03.28