반응형

PCSQL 43

[MYSQL] PROGRAMMERS_자동차 대여 기록 별 대여 금액 구하기

With History2 as (Select *, CASE WHEN Datediff(END_DATE,START_DATE)+1 >= 90 then "90일 이상" WHEN Datediff(END_DATE,START_DATE)+1 >= 30 then "30일 이상" WHEN Datediff(END_DATE,START_DATE)+1 >= 7 then "7일 이상" else NULL end as DURATION_TYPE FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY) SELECT distinct HISTORY_ID as HISTORY_ID, CASE WHEN h.DURATION_TYPE IS NULL THEN FLOOR(DAILY_FEE*(Datediff(END_DATE,START_DAT..

[MYSQL] PROGRAMMERS_오프라인/온라인 판매 데이터 통합하기

SELECT DATE_FORMAT(SALES_DATE,"%Y-%m-%d")SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT FROM ONLINE_SALE WHERE 1=1 AND SALES_DATE like "2022-03%" UNION ALL SELECT DATE_FORMAT(SALES_DATE,"%Y-%m-%d")SALES_DATE, PRODUCT_ID , "NULL", SALES_AMOUNT FROM OFFLINE_SALE WHERE 1=1 AND SALES_DATE like "2022-03%" ORDER BY 1,2,3 문제 ONLINE_SALE 테이블과 OFFLINE_SALE 테이블에서 2022년 3월의 오프라인/온라인 상품 판매 데이터의 판매 날짜, 상품ID, ..

[MYSQL] PROGRAMMERS_그룹별 조건에 맞는 식당 목록 출력하기

WITH A as (SELECT MEMBER_ID,COUNT(MEMBER_ID)as MCV FROM REST_REVIEW GROUP BY 1 order by 2 desc limit 1) SELECT MEMBER_NAME, REVIEW_TEXT, DATE_FORMAT(REVIEW_DATE,"%Y-%m-%d")REVIEW_DATE FROM MEMBER_PROFILE as m, REST_REVIEW as r , A WHERE m.MEMBER_ID = r.MEMBER_ID AND m.MEMBER_ID= A.MEMBER_ID ORDER BY 3,2 문제 MEMBER_PROFILE와 REST_REVIEW 테이블에서 리뷰를 가장 많이 작성한 회원의 리뷰들을 조회하는 SQL문을 작성 후 회원 이름, 리뷰 텍스트, 리뷰..

[MYSQL] PROGRAMMERS_주문량이 많은 아이스크림들 조회하기

WITH TT as (SELECT h.FLAVOR, h.TOTAL_ORDER + sum(j.TOTAL_ORDER) as T FROM FIRST_HALF as h , JULY as j WHERE h.FLAVOR = j.FLAVOR GROUP BY 1 ORDER BY 2 desc limit 3) SELECT t.FLAVOR FROM FIRST_HALF as h, TT as t WHERE t.FLAVOR = h.FLAVOR ORDER BY T desc 문제 7월 아이스크림 총 주문량과 상반기의 아이스크림 총 주문량을 더한 값이 큰 순서대로 상위 3개의 맛을 조회하는 SQL 문을 작성 ORDER BY절에서 집계함수 써서 정렬 하는 방법도 다음엔 써봐야겠다는 생각을(만) 하며 기본만 하자는 생각으로 기본적인 방법..

[MYSQL] PROGRAMMERS_우유와 요거트가 담긴 장바구니

SELECT CART_ID FROM CART_PRODUCTS WHERE 1=1 AND NAME = 'Yogurt' AND CART_ID in (SELECT CART_ID FROM CART_PRODUCTS WHERE 1=1 AND NAME = 'Milk') GROUP BY 1 ORDER BY 1 문제 우유와 요거트를 동시에 구입한 장바구니의 아이디를 조회하는 SQL 문을 작성 후 결과는 장바구니의 아이디 순으로 다양한 풀이 방법이 있지만 시각적으로 보기편하고 이해하기 쉽게 풀었습니다. 먼저 우유와 요거트가 동시에 값에 있어야 합니다. 그래서 임시로 서브쿼리를 파 Milk가 NAME 컬럼에 있는 CART_ID 집합을 생성해 주었습니다. 이 집합은 값이 여러개 담겨 있기때문에 in 으로 메인 쿼리의 CART_..

[MYSQL] PROGRAMMERS_저자 별 카테고리 별 매출액 집계하기

SELECT b.AUTHOR_ID, AUTHOR_NAME, CATEGORY, SUM(SALES*PRICE)TOTAL_SALES FROM BOOK as b, AUTHOR as a, BOOK_SALES as s WHERE b.AUTHOR_ID = a.AUTHOR_ID AND b.BOOK_ID = s.BOOK_ID AND SALES_DATE like "2022-01%" GROUP BY 1,3 ORDER BY 1,3 desc 문제 2022년 1월의 도서 판매 데이터를 기준으로 저자 별, 카테고리 별 매출액(TOTAL_SALES = 판매량 * 판매가) 을 구하여, 저자 ID(AUTHOR_ID), 저자명(AUTHOR_NAME), 카테고리(CATEGORY), 매출액(SALES) 리스트를 출력하는 SQL문을 작성 결과..

[MYSQL] PROGRAMMERS_년, 월, 성별 별 상품 구매 회원 수 구하기

SELECT YEAR(SALES_DATE)YEAR, MONTH(SALES_DATE)MONTH, GENDER,COUNT(distinct i.USER_ID)USERS FROM USER_INFO as i,ONLINE_SALE as o WHERE i.USER_ID = o.USER_ID AND GENDER is not null GROUP BY 1,2,3 ORDER BY 1,2,3 문제 USER_INFO 테이블과 ONLINE_SALE 테이블에서 년, 월, 성별 별로 상품을 구매한 회원수를 집계하는 SQL문 작성. 결과는 년, 월, 성별을 기준으로 오름차순 정렬. 이때, 성별 정보가 없는 경우 결과에서 제외. 뭔가 약간 애매한 문제 였다. 조건 자체는 쉬운데 뭘해야할지 애매한... 먼저 두개의 테이블을 유니크한 값인..

[MYSQL] PROGRAMMERS_서울에 위치한 식당 목록 출력하기

SELECT i.REST_ID, REST_NAME, FOOD_TYPE, FAVORITES, ADDRESS, ROUND(AVG(REVIEW_SCORE),2) as SCORE FROM REST_INFO as i, REST_REVIEW as r WHERE i.REST_ID = r.REST_ID AND ADDRESS like "서울%" GROUP BY 1 ORDER BY 6 desc, 4 desc 문제 REST_INFO와 REST_REVIEW 테이블에서 서울에 위치한 식당들의 식당 ID, 식당 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수를 조회하는 SQL문을 작성. 이때 리뷰 평균점수는 소수점 세 번째 자리에서 반올림, 결과는 평균점수를 기준으로 내림차순 정렬 후 평균점수가 같다면 즐겨찾기수를 기준으..

[MYSQL] PROGRAMMERS_취소되지 않은 진료 예약 조회하기

SELECT a.APNT_NO, PT_NAME, a.PT_NO, a.MCDP_CD, DR_NAME, a.APNT_YMD FROM PATIENT as p ,DOCTOR as d, APPOINTMENT as a WHERE a.MDDR_ID = d.DR_ID AND a.PT_NO = p.PT_NO AND a.MCDP_CD = "CS" AND APNT_YMD like "2022-04-13%" AND APNT_CNCL_YN = "N" ORDER BY APNT_YMD 문제 PATIENT, DOCTOR 그리고 APPOINTMENT 테이블에서 2022년 4월 13일 취소되지 않은 흉부외과(CS) 진료 예약 내역을 조회하는 SQL문을 작성해주세요. 진료예약번호, 환자이름, 환자번호, 진료과코드, 의사이름, 진료예약일시 ..

반응형