반응형

2024/02 79

[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 하여..

[MYSQL] PROGRAMMERS_가격이 제일 비싼 식품의 정보 출력하기

/*SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, MAX(PRICE) as PRICE FROM FOOD_PRODUCT*/ --1번째 답 SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE FROM FOOD_PRODUCT ORDER BY PRICE desc l --2번째 답 SELECT * FROM FOOD_PRODUCT WHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT) PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE는 식품 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격을 의미 문제 FOOD_PRODU..

[MYSQL] PROGRAMMERS_DATETIME에서 DATE로 형 변환

SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME,"%Y-%m-%d") as 날짜 FROM ANIMAL_INS ORDER BY 1 ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냄 문제 등록된 모든 레코드에 대해, 각 동물의 아이디와 이름, 들어온 날짜1를 조회하는 SQL문을 작성해주세요. 이때 결과는 아이디 순으로 조회 시각(시-분-초)을 제외한 날짜(년-월-일)만 보여주세요. 이전에 풀었던 문제와 같이 DATE_FORMAT을 이용하여 해결하였다. 다른 조건은 크게 필요없는 문제.

반응형