SQL 50

SQL 코드카타 오답: CONCAT | FROM절 안에서 JOIN하기

!!!내가 맞는 것같을 때는 질문하기 확인해보기!!![조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기]USED_GOODS_BOARD와 USED_GOODS_FILE 테이블에서 조회수가 가장 높은 중고거래 게시물에 대한 첨부파일 경로를 조회하는 SQL문을 작성해주세요. 첨부파일 경로는 FILE ID를 기준으로 내림차순 정렬해주세요. 기본적인 파일경로는 /home/grep/src/ 이며, 게시글 ID를 기준으로 디렉토리가 구분되고, 파일이름은 파일 ID, 파일 이름, 파일 확장자로 구성되도록 출력해주세요. 조회수가 가장 높은 게시물은 하나만 존재합니다.-- 내가 짠 쿼리SELECT CONCAT("/home/grep/src/", f.BOARD_ID, "/", f.FILE_ID, f.FILE_NAME, f..

SQL 2024.12.11

SQL 코드카타 오답: DISTINCT의 중요성 | AND와 OR

[우유와 요거트가 담긴 장바구니]데이터 분석 팀에서는 우유(Milk)와 요거트(Yogurt)를 동시에 구입한 장바구니가 있는지 알아보려 합니다. 우유와 요거트를 동시에 구입한 장바구니의 아이디를 조회하는 SQL 문을 작성해주세요. 이때 결과는 장바구니의 아이디 순으로 나와야 합니다.-- 내가 작성한 쿼리SELECT CART_IDFROM CART_PRODUCTSWHERE NAME = 'Milk' OR NAME = 'Yogurt'GROUP BY CART_IDHAVING COUNT(NAME) >= 2ORDER BY CART_ID-- 정답 쿼리-- **DISTINCT의 중요성**-- 고유값을 COUNT 했을 때 2보다 크거나 같아야 Milk와 Yogurt를 포함한 것-- 2이면 Milk와 Yogurt만 포함, ..

SQL 2024.12.10

SQL 코드카타 오답: 날짜 차이 | where, having 구분 | 테이블 조인

[자동차 대여 기록에서 장기/단기 대여 구분하기]CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 대여 시작일이 2022년 9월에 속하는 대여 기록에 대해서 대여 기간이 30일 이상이면 '장기 대여' 그렇지 않으면 '단기 대여' 로 표시하는 컬럼(컬럼명: RENT_TYPE)을 추가하여 대여기록을 출력하는 SQL문을 작성해주세요. 결과는 대여 기록 ID를 기준으로 내림차순 정렬해주세요.-- +1을 해줘야함!!-- 대여 기간에서는 시작일과 종료일 모두 포함된 전체 기간을 계산해야 하므로, 시작일 자체도 하루로 포함하기 위해 +1SELECT HISTORY_ID, CAR_ID, DATE_FORMAT(START_DATE,'%Y-%m-%d') START_DATE, DATE_F..

SQL 2024.12.09

SQL 코드카타 오답: GROUP BY

[서울에 위치한 식당 목록 출력하기]REST_INFO와 REST_REVIEW 테이블에서 서울에 위치한 식당들의 식당 ID, 식당 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수를 조회하는 SQL문을 작성해주세요. 이때 리뷰 평균점수는 소수점 세 번째 자리에서 반올림 해주시고 결과는 평균점수를 기준으로 내림차순 정렬해주시고, 평균점수가 같다면 즐겨찾기수를 기준으로 내림차순 정렬해주세요.-- GROUP BY 해줘야함SELECT ri.REST_ID, ri.REST_NAME, ri.FOOD_TYPE, ri.FAVORITES, ri.ADDRESS, ROUND(AVG(rr.REVIEW_SCORE), 2) SCOREFROM REST_INFO riJOIN REST_REVIEW rr ..

SQL 2024.12.06

SQL 과제 오답: WITH | WITH RECURSIVE | STEDDEV

2. 결과 방식별 통계 분석: payments 테이블payments 테이블에서 각 결제 방식별 결제 금액의 합계와 해당 결제 방식이 전체 결제 금액에서 차지하는 비율 구하기-- 내가 짠 쿼리SELECT payment_type, total_payment_value, ROUND((total_payment_value / SUM(total_payment_value) OVER())*100, 2) payment_percentageeFROM ( SELECT payment_type, SUM(payment_value) total_payment_value FROM payments GROUP BY payment_type ) pORDER BY total_payment_value;-- 정답: 훨씬 간단!SELECT ..

SQL 2024.12.05

SQL 코드카타 오답: DATE | MAX로 우선 순위가 높은 값 반환하기 | DISTINCT

[취소되지 않은 진료 예약 조회하기]PATIENT, DOCTOR 그리고 APPOINTMENT 테이블에서 2022년 4월 13일 취소되지 않은 흉부외과(CS) 진료 예약 내역을 조회하는 SQL문을 작성해주세요. 진료예약번호, 환자이름, 환자번호, 진료과코드, 의사이름, 진료예약일시 항목이 출력되도록 작성해주세요. 결과는 진료예약일시를 기준으로 오름차순 정렬해주세요.-- 틀리진 않았지만 헷갈렸던 문제-- 날짜가 밀리초 단위까지 나와있기 때문에 DATE()로 일자까지만 추출하여 비교SELECT A.APNT_NO, P.PT_NAME, P.PT_NO, D.MCDP_CD, D.DR_NAME, A.APNT_YMDFROM APPOINTMENT AJOIN PATIENT P ON A.PT_NO ..

SQL 2024.12.05

SQL 코드카타 오답: HAVING COUNT(*) > 1 | CONCAT | SABSTR

[재구매가 일어난 상품과 회원 리스트 구하기]ONLINE_SALE 테이블에서 동일한 회원이 동일한 상품을 재구매한 데이터를 구하여, 재구매한 회원 ID와 재구매한 상품 ID를 출력하는 SQL문을 작성해주세요. 결과는 회원 ID를 기준으로 오름차순 정렬해주시고 회원 ID가 같다면 상품 ID를 기준으로 내림차순 정렬해주세요.-- HAVING COUNT(*) > 1: 동일한 회원과 동일한 상품 조회SELECT USER_ID, PRODUCT_IDFROM ONLINE_SALEGROUP BY USER_ID, PRODUCT_IDHAVING COUNT(*) > 1ORDER BY USER_ID, PRODUCT_ID DESC; [조건에 맞는 사용자 정보 조회하기]USED_GOODS_BOARD와 USED_GO..

SQL 2024.12.03

SQL 코드카타 오답: ROUND | HAVING과 WHRE | FLOOR | MONTH

[평균 일일 대여 요금 구하기]CAR_RENTAL_COMPANY_CAR 테이블에서 자동차 종류가 'SUV'인 자동차들의 평균 일일 대여 요금을 출력하는 SQL문을 작성해주세요. 이때 평균 일일 대여 요금은 소수 첫 번째 자리에서 반올림하고, 컬럼명은 AVERAGE_FEE 로 지정해주세요.-- 반올림: ROUND()SELECT ROUND(AVG(DAILY_FEE), 0) AVERAGE_FEEFROM CAR_RENTAL_COMPANY_CARWHERE CAR_TYPE = 'SUV'; [조건에 맞는 사용자와 총 거래금액 구하기]USED_GOODS_BOARD와 USED_GOODS_USER 테이블에서 완료된 중고 거래의 총금액이 70만 원 이상인 사람의 회원 ID, 닉네임, 총거래금액을 조회하는 SQL문을 작성해주..

SQL 2024.12.02

SQL 코드카타 오답: DATE_FORMAT | 날짜 계산 | IN

[카테고리 별 도서 판매량 집계하기]2022년 1월의 카테고리 별 도서 판매량을 합산하고, 카테고리(CATEGORY), 총 판매량(TOTAL_SALES) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 카테고리명을 기준으로 오름차순 정렬해주세요.-- 어떤 테이블의 데이터인지 명시하기SELECT b.CATEGORY, SUM(s.SALES) TOTAL_SALESFROM BOOK bJOIN BOOK_SALES s ON b.BOOK_ID = s.BOOK_IDWHERE s.SALES_DATE BETWEEN '2022-01-01' AND '2022-01-31'GROUP BY b.CATEGORYORDER BY b.CATEGORY; [상품 별 오프라인 매출 구하기]PRODUCT 테이블과 OFFLINE_SALE ..

SQL 2024.11.29

SQL 코드카타 오답: DATE_FORMAT | LEFT | HOUR

[DATETIME에서 DATE로 형 변환]ANIMAL_INS 테이블에 등록된 모든 레코드에 대해, 각 동물의 아이디와 이름, 들어온 날짜를 조회하는 SQL문을 작성해주세요. 이때 결과는 아이디 순으로 조회해야 합니다.# DATE_FORMATSELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, '%Y-%m-%d') AS 날짜FROM ANIMAL_INSORDER BY ANIMAL_ID; [카테고리 별 상품 개수 구하기]PRODUCT 테이블에서 상품 카테고리 코드(PRODUCT_CODE 앞 2자리) 별 상품 개수를 출력하는 SQL문을 작성해주세요. 결과는 상품 카테고리 코드를 기준으로 오름차순 정렬해주세요.# LEFT( , )SELECT LEFT(PRODUC..

SQL 2024.11.28