반응형

2024/02 79

[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문을 작성해주세요. 진료예약번호, 환자이름, 환자번호, 진료과코드, 의사이름, 진료예약일시 ..

[MYSQL] PROGRAMMERS_ 5월 식품들의 총매출 조회하기

SELECT p.PRODUCT_ID, p.PRODUCT_NAME, PRICE*sum(AMOUNT) as TOTAL_SALES FROM FOOD_PRODUCT as p, FOOD_ORDER as o WHERE p.PRODUCT_ID = o.PRODUCT_ID AND PRODUCE_DATE like "2022-05%" GROUP BY 1 ORDER BY 3 desc,1 문제 FOOD_PRODUCT와 FOOD_ORDER 테이블에서 생산일자가 2022년 5월인 식품들의 식품 ID, 식품 이름, 총매출을 조회하는 SQL문을 작성후 결과는 총매출을 기준으로 내림차순 정렬해주시고 총매출이 같다면 식품 ID를 기준으로 오름차순 정렬 크게 어려울게 없는 문제이다. 실수를 할 요소가 있다면 SUM(AMOUNT) 이후 *P..

[MYSQL] PROGRAMMERS_식품분류별 가장 비싼 식품의 정보 조회하기

WITH ms as (SELECT CATEGORY,MAX(PRICE) as MXP FROM FOOD_PRODUCT GROUP BY 1) SELECT a.CATEGORY, MAX(PRICE)MAX_PRICE, PRODUCT_NAME FROM FOOD_PRODUCT as a, ms WHERE a.CATEGORY = ms.CATEGORY AND a.CATEGORY in ('과자', '국', '김치', '식용유') AND PRICE = ms.MXP GROUP BY 1 ORDER BY 2 desc 문제 FOOD_PRODUCT 테이블에서 식품분류별로 가격이 제일 비싼 식품의 분류, 가격, 이름을 조회하는 SQL문을 작성해주세요. 이때 식품분류가 '과자', '국', '김치', '식용유'인 경우만 출력시켜 주시고 결과..

[MYSQL] PROGRAMMERS_보호소에서 중성화한 동물

SELECT distinct i.ANIMAL_ID, i.ANIMAL_TYPE, i.NAME FROM ANIMAL_INS as i, ANIMAL_OUTS as o WHERE i.ANIMAL_ID = o.ANIMAL_ID AND i.SEX_UPON_INTAKE like "Intact%" AND o.SEX_UPON_OUTCOME in ("Spayed Female","Neutered Male") ORDER BY 1 문제 보호소에 들어올 당시에는 중성화되지 않았지만, 보호소를 나갈 당시에는 중성화된 동물의 아이디와 생물 종, 이름을 조회하는 아이디 순으로 조회하는 SQL 문을 작성 어렵지 않은 문제입니다. (최근 제가쓴 게시글을 보니 가독성이 좋지않아 조금 가독성을 높여 보려합니다) 코드를 어떻게 짤까 살짝 고민..

[MYSQL] PROGRAMMERS_대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기

SELECT MONTH(START_DATE)MONTH,CAR_ID,COUNT(CAR_ID) as RECORDS FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE 1=1 AND DATE_FORMAT(START_DATE,'%Y-%m') between '2022-08' and '2022-10' AND CAR_ID in (SELECT CAR_ID FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY where 1=1 and DATE_FORMAT(START_DATE,'%Y-%m') between '2022-08' and '2022-10' group by 1 having COUNT(CAR_ID)>=5) GROUP BY 1,2 ORDER BY 1,2 desc 문제 CAR..

[MYSQL] PROGRAMMERS_헤비 유저가 소유한 장소

SELECT ID, NAME, HOST_ID FROM PLACES WHERE HOST_ID in (SELECT HOST_ID FROM PLACES GROUP BY 1 HAVING COUNT(HOST_ID)>=2) ORDER BY 1 문제 이 서비스에서는 공간을 둘 이상 등록한 사람을 "헤비 유저"라고 부릅니다. 헤비 유저가 등록한 공간의 정보를 아이디 순으로 조회하는 SQL문을 작성 조건 자체가 적어서 어렵지는 않다. 하지만 Where in 에 대한 개념이 조금 부족하면 어려울 수 있다. 일단 공간을 둘 이상 등록 한 사람이다. HOST_ID가 >=2 가 되어야 하는 조건을 가져야 한다 (공간 마다 아이디가 마킹되어 있으므로 아이디의 개수가 곧 공간의 개수). 이 조건을 메인쿼리에서 바로 적용하기는 어려..

반응형