반응형

2024/02/21 29

[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월예약건수'로 지정 후 결과는 진료과별 예약한 환자 수를 기준으로 오름차순 정렬하고, 예약한 환자 수가 같다면 진료..

[MYSQL] PROGRAMMERS_고양이와 개는 몇 마리 있을까

SELECT ANIMAL_TYPE, count(ANIMAL_ID)count FROM ANIMAL_INS WHERE 1=1 AND ANIMAL_TYPE in ("DOG","CAT") GROUP BY ANIMAL_TYPE ORDER BY ANIMAL_TYPE ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. 문제 동물 보호소에 들어온 동물 중 고양이와 개가 각각 몇 마리인지 조회하는 SQL문을 작성후 고양이를 개보다 먼저 조회 일단 개와 고양이 데이터만을 필터 해야하기에 in () 구문으로 ANIMAL_TYPE 에서..

[MYSQL] PROGRAMMERS_중성화 여부 파악하기

SELECT ANIMAL_ID, NAME, CASE WHEN SEX_UPON_INTAKE like 'Neutered%' then "O" WHEN SEX_UPON_INTAKE like "Spayed%" then "O" else "X" end as "중성화" FROM ANIMAL_INS ORDER BY 1 ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냄 문제 중성화된 동물은 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어로 표기. 동물의 아이디와 이름, 중성화 여부를 아이디 순으로 ..

[MYSQL] PROGRAMMERS_카테고리 별 상품 개수 구하기

SELECT left(PRODUCT_CODE,2) as CATEGORY, COUNT(PRODUCT_ID) as PRODUCTS FROM PRODUCT group by 1 order by 1 PRODUCT_ID, PRODUCT_CODE, PRICE는 각각 상품 ID, 상품코드, 판매가를 나타냄 문제 PRODUCT 테이블에서 상품 카테고리 코드(PRODUCT_CODE 앞 2자리) 별 상품 개수를 출력하는 SQL문을 작성후 결과는 상품 카테고리 코드를 기준으로 오름차순 정렬 left와 case 구문을 써야하나 생각 했다가 간단하게 select 구문에서 left 구문을 써서 해결했다. PRODUCT_CODE의 왼쪽 2개 값을 가진 컬럼을 CATEGORY 컬럼으로 명하고 해당 컬럼을 기준으로 GROUP BY 하여..

반응형