반응형

데이터분석 74

[MYSQL] PROGRAMMERS_조건에 부합하는 중고거래 상태 조회하기

SELECT BOARD_ID, WRITER_ID, TITLE, PRICE, CASE WHEN STATUS = "SALE" then "판매중" WHEN STATUS = "RESERVED" then "예약중" WHEN STATUS = "DONE" then "거래완료" end as STATUS FROM USED_GOODS_BOARD WHERE 1=1 AND CREATED_DATE = "2022-10-05" order by 1 desc BOARD_ID, WRITER_ID, TITLE, CONTENTS, PRICE, CREATED_DATE, STATUS, VIEWS은 게시글 ID, 작성자 ID, 게시글 제목, 게시글 내용, 가격, 작성일, 거래상태, 조회수를 의미 문제 USED_GOODS_BOARD 테이블에서 2..

[MYSQL] PROGRAMMERS_재구매가 일어난 상품과 회원 리스트 구하기

SELECT USER_ID,PRODUCT_ID FROM ONLINE_SALE GROUP BY USER_ID,PRODUCT_ID having count(USER_ID) > 1 ORDER BY 1,2 desc ONLINE_SALE_ID, USER_ID, PRODUCT_ID, SALES_AMOUNT, SALES_DATE는 각각 온라인 상품 판매 ID, 회원 ID, 상품 ID, 판매량, 판매일을 나타냄 문제 ONLINE_SALE 테이블에서 동일한 회원이 동일한 상품을 재구매한 데이터를 구하여, 재구매한 회원 ID와 재구매한 상품 ID를 출력하는 SQL문을 작성. 결과는 회원 ID를 기준으로 오름차순 정렬 후 회원 ID가 같다면 상품 ID를 기준으로 내림차순 정렬 해당 문제는 having으로 처리하면 간단한 문제..

[MYSQL] PROGRAMMERS_가격대 별 상품 개수 구하기

SELECT truncate(PRICE,-4) as PRICE_GROUP, COUNT(PRODUCT_CODE) as PRODUCTS FROM PRODUCT group by 1 order by 1 PRODUCT_ID, PRODUCT_CODE, PRICE는 각각 상품 ID, 상품코드, 판매가를 나타냅니다. 문제 PRODUCT 테이블에서 만원 단위의 가격대 별로 상품 개수를 출력하는 SQL 문을 작성후 컬럼명은 각각 컬럼명은 PRICE_GROUP, PRODUCTS로 지정, 가격대 정보는 각 구간의 최소금액(10,000원 이상 ~ 20,000 미만인 구간인 경우 10,000)으로 표시. 결과는 가격대를 기준으로 오름차순 정렬 솔직히 이 문제는 어떻게 풀어야 하나 하다 case when 구문으로 구간별로 하나하나..

[MYSQL] PROGRAMMERS_3월에 태어난 여성 회원 목록 출력하기

SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH,"%Y-%m-%d")as DATE_OF_BIRTH FROM MEMBER_PROFILE WHERE 1=1 AND MONTH(DATE_OF_BIRTH) =03 AND GENDER = "W" AND TLNO IS NOT NULL ORDER BY 1 MEMBER_ID, MEMBER_NAME, TLNO, GENDER, DATE_OF_BIRTH는 회원 ID, 회원 이름, 회원 연락처, 성별, 생년월일을 의미 문제 MEMBER_PROFILE 테이블에서 생일이 3월인 여성 회원의 ID, 이름, 성별, 생년월일을 조회하는 SQL문을 작성후 전화번호가 NULL인 경우는 출력대상에서 제외시키고, 결과는 회원I..

[MYSQL] PROGRAMMERS_성분으로 구분한 아이스크림 총 주문량

SELECT INGREDIENT_TYPE, sum(TOTAL_ORDER) as TOTAL_ORDER FROM FIRST_HALF as f, ICECREAM_INFO as i WHERE f.FLAVOR = i.FLAVOR GROUP BY 1 ORDER BY TOTAL_ORDER asc FLAVOR, INGREDITENT_TYPE 은 각각 아이스크림 맛, 아이스크림의 성분 타입을 나타낸다. INGREDIENT_TYPE에는 아이스크림의 주 성분이 설탕이면 sugar_based라고 입력되고, 아이스크림의 주 성분이 과일이면 fruit_based라고 입력된다. ICECREAM_INFO의 기본 키는 FLAVOR이다. ICECREAM_INFO테이블의 FLAVOR는 FIRST_HALF 테이블의 FLAVOR의 외래 키이..

[MYSQL] PROGRAMMERS_조건에 맞는 도서와 저자 리스트 출력하기

SELECT BOOK_ID, AUTHOR_NAME, DATE_FORMAT(PUBLISHED_DATE,"%Y-%m-%d")as PUBLISHED_DATE FROM BOOK as b, AUTHOR as a WHERE b.AUTHOR_ID = a.AUTHOR_ID AND CATEGORY = "경제" ORDER BY 3 문제 '경제' 카테고리에 속하는 도서들의 도서 ID(BOOK_ID), 저자명(AUTHOR_NAME), 출판일(PUBLISHED_DATE) 리스트를 출력하는 SQL문을 작성 결과는 출판일을 기준으로 오름차순 정렬 크게 어려울것 없이 두개의 테이블을 조인하여 조건문 처리 후 정렬하는 문제로 보인다. 따라서 간단히 두테이블을 alias 처리하여 조인해 주고 조인 기준은 where 조건으로 처리해 줬다..

[MYSQL] PROGRAMMERS_상품 별 오프라인 매출 구하기

SELECT PRODUCT_CODE, sum(PRICE * SALES_AMOUNT)SALES FROM PRODUCT as p, OFFLINE_SALE as o WHERE p.PRODUCT_ID = o.PRODUCT_ID GROUP BY 1 ORDER BY 2 desc, 1 OFFLINE_SALE_ID, PRODUCT_ID, SALES_AMOUNT, SALES_DATE는 각각 오프라인 상품 판매 ID, 상품 ID, 판매량, 판매일을 나타냄 문제 PRODUCT 테이블과 OFFLINE_SALE 테이블에서 상품코드 별 매출액(판매가 * 판매량) 합계를 출력하는 SQL문을 작성. 결과는 매출액을 기준으로 내림차순 정렬후 매출액이 같다면 상품코드를 기준으로 오름차순 정렬 두 테이블을 조인 하여 나오는 값을 통해 각..

[MYSQL] PROGRAMMERS_자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기

SELECT CAR_TYPE, COUNT(CAR_ID)CARS FROM CAR_RENTAL_COMPANY_CAR WHERE 1=1 AND OPTIONS like "%통풍시트%" or OPTIONS like "%열선시트%" or OPTIONS like "%가죽시트%" GROUP BY 1 ORDER BY 1 CAR_RENTAL_COMPANY_CAR 테이블은 아래와 같은 구조로 되어있으며, CAR_ID, CAR_TYPE, DAILY_FEE, OPTIONS 는 각각 자동차 ID, 자동차 종류, 일일 대여 요금(원), 자동차 옵션 리스트를 나타냄 자동차 종류는 '세단', 'SUV', '승합차', '트럭', '리무진' 이 있다. 자동차 옵션 리스트는 콤마(',')로 구분된 키워드 리스트(옵션 리스트 값 예시: '열..

[MYSQL] PROGRAMMERS_입양 시각 구하기(1)

SELECT HOUR(DATETIME) as HOUR, COUNT(ANIMAL_ID)COUNT FROM ANIMAL_OUTS WHERE 1=1 and HOUR(DATETIME) between 09 and 19 GROUP BY 1 ORDER BY 1 ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냄 문제 09:00부터 19:59까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성후 결과는 시간대 순으로 정렬 DATETIME 은 년 월 일 시간 분 초 까지 다 나와 있는 데이터로 포멧을 바꾸어 주어야 한다. 여기엔 적어두지 않았지만 답안 예시에는 시간이 9..

[MYSQL] PROGRAMMERS_진료과별 총 예약 횟수 출력하기

SELECT MCDP_CD as 진료과코드,count(APNT_NO) as 5월예약건수 FROM APPOINTMENT WHERE 1=1 AND APNT_YMD like "2022-05%" GROUP BY 1 ORDER BY 2,1 APNT_YMD, APNT_NO, PT_NO, MCDP_CD, MDDR_ID, APNT_CNCL_YN, APNT_CNCL_YMD는 각각 진료예약일시, 진료예약번호, 환자번호, 진료과코드, 의사ID, 예약취소여부, 예약취소날짜를 나타냄 문제 테이블에서 2022년 5월에 예약한 환자 수를 진료과코드 별로 조회하는 SQL문을 작성. 이때, 컬럼명은 '진료과 코드', '5월예약건수'로 지정 후 결과는 진료과별 예약한 환자 수를 기준으로 오름차순 정렬하고, 예약한 환자 수가 같다면 진료..

반응형