sql 24

[MySQL] 프로그래머스 조건에 맞는 도서와 저자 리스트 출력

문제:'경제' 카테고리에 속하는 도서들의 도서 ID(BOOK_ID), 저자명(AUTHOR_NAME), 출판일(PUBLISHED_DATE) 리스트를 출력 해결방법:1. BOOK 과 AUTHOR 테이블은 AUTHOR_ID 로 JOIN2. 출판일은 DATE_FORMAT() 으로 변환 후 출력3. WHERE 절에서 카테고리 '결제' 로 설정 예시 코드:SELECT BOOK_ID, AUTHOR_NAME, DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') AS PUBLISHED_DATEFROM BOOKINNER JOIN AUTHORON BOOK.AUTHOR_ID = AUTHOR.AUTHOR_IDWHERE CATEGORY = '경제'ORDER BY PUBLISHED_DATE;

[SQL] 연습 2024.09.15

[MySQL] 자동차 종류 별 특정 옵션이 포함된 자동차 수

문제: '통풍시트', '열선시트', '가죽시트' 중 하나 이상의 옵션이 포함된 자동차가 자동차 종류 별로 몇 대인지 출력 - 자동차 수에 대한 컬럼명은 CARS로 지정- 자동차 종류를 기준으로 오름차순 정렬  해결방법:1. 여러가지 옵션을 WHERE 절에서 REGEXP 로 설정2. 종류별 몇 대인지는 GROUP BY 사용3. ORDER BY 오름차순 정렬 예시 코드:SELECT CAR_TYPE, COUNT(*) CARSFROM CAR_RENTAL_COMPANY_CARWHERE options REGEXP '통풍시트|열선시트|가죽시트'GROUP BY car_typeORDER BY CAR_TYPE;

[SQL] 연습 2024.09.14

[MySQL] 프로그래머스 12세 이하인 여자 환자 목록 출력하기

문제:12세 이하인 여자환자의 환자이름, 환자번호, 성별코드, 나이, 전화번호를 조회- 전화번호가 없는 경우, 'NONE'으로 출력- 결과는 나이를 기준으로 내림차순 정렬하고, 나이 같다면 환자이름을 기준으로 오름차순 해결방법:1. SELECT 에서 전화번호가 없는 경우에 대해서 IFNULL() 로 처리2. WHERE 절에서 12세 이하, 여자 환자 조건 설정3. ORDER BY 로 정렬 순서 정하기 예시 코드:SELECT PT_NAME, PT_NO, GEND_CD, AGE, IFNULL(TLNO, "NONE") AS TLNOFROM PATIENTWHERE AGE

[SQL] 연습 2024.09.08

[MySQL] 프로그래머스 흉부외과 또는 일반외과 의사 목록

문제: 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID, 진료과, 고용일자를 조회하는 SQL문- 결과는 고용일자순 내림차수, 이름 오름차순 정렬- 고용일자는 'YYYY-mm-dd' 형식 해결방법:1. WHERE 절에서 진료과가 'CS' or 'GS' 만 출력하도록 함2. ORDER BY 로 고용일자 DESC, 이름 ASC3. DATE_FORMAT() 함수로 일자 출력 양식 변경 예시 답안:SELECT DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD, '%Y-%m-%d') AS HIRE_YMDFROM DOCTORWHERE MCDP_CD = 'CS' OR MCDP_CD = 'GS'ORDER BY HIRE_YMD DESC, DR_NAME ASC;

[SQL] 연습 2024.08.24

[MySQL] 프로그래머스 경기도에 위치한 식품창고 목록 출력하기

문제:FOOD_WAREHOUSE 테이블에서 경기도에 위치한 창고의 ID, 이름, 주소, 냉동시설 여부를 조회- 냉동시설 여부의 값이 NULL 인 경우 'N' 으로 출력- 창고는 경기도에 위치해야 함- ID 에 따른 오름차순 출력 해결방법:1. IFNULL() 함수를 사용해서 냉동시설 여부의 값이 NULL 인 경우 'N' 으로 출력하도록 처리2. WHERE 절에 LIKE 를 사용해서 이름에 '경기' 가 포함된 경우만 출력하도록 처리3. ORDER BY 로 오름차순 출력 예시 코드:SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, IFNULL(FREEZER_YN, 'N') AS FREEZER_YNFROM FOOD_WAREHOUSEWHERE WAREHOUSE_NAME LIKE ..

[SQL] 연습 2024.08.18

[SQL] 프로그래머스 대장균들의 자식의 수 구하기

문제: 대장균 개체(ID)와 자식의 수(CHILD_COUNT)를 출력하는 SQL 작성- 자식이 없다면 자식의 수는 0으로 출력- 결과는 개체의 ID에 대해 오름차순 정렬 해결방법:1. ECOLI_DATA 테이블에서 'ID' 컬럼을 구한다 → 테이블에서의 전체 개체(ID) 출력2. ECOLI_DATA 테이블에서 GROUP BY 로 'PARENT_ID' 별 레코드 수 계산 → 각 PARENT 별 자식 수 카운트 가능3. 자식이 없는 ID 도 있으므로 1번 결과 테이블과 2번 결과 테이블을 LEFT OUTER JOIN 을 해서 모든 ID 에 대해 자식 수가 표시될 수 있도록 함.4. 이 때, 자식 수가 없는 경우 NULL 이므로 IFNULL() 규칙으로 처리해주면 된다. 코드 예시SELECT A.ID, IFN..

[SQL] 연습 2024.08.16

[solvesql] 지역별 주문의 특징

Q. region, category 별 주문량을 계산해 출력하는 쿼리를 작성해주세요. 결과 데이터는 아래와 같은 테이블 형태로 출력되어야 하고, Region 컬럼 기준 오름차순으로 정렬되어 있어야 합니다. - 문제 조건 확인 1. region, category 별 주문량을 계산 → group by 사용 2. 목표 테이블 형태 → pivot 테이블 형식으로 출력되도록 쿼리를 작성 3. Region 컬럼 기준 오름차순으로 정렬 → order by Region - 테이블 확인 - 풀이과정 1. 먼저 records table 을 확인한 후, region 만 추출 select region from records ; 2. CASE 문을 활용하여, category 가 Furniture 인 경우의 주문건수를 집계 - ..

[SQL] 연습 2022.10.20

[solvesql] 일별 블로그 방문자 수 집계

Q. 2021년 8월 2일부터 2021년 8월 9일까지 날짜별로 몇 명의 방문자가 방문했는지 알고 싶습니다. 해당 일자 내 로그 테이블에 이벤트가 하나라도 기록 된 경우 방문자로 집계합니다. 기간 별 방문자 수를 일별로 추출하는 쿼리를 작성해주세요. 결과 데이터에는 아래 2개 컬럼(dt - 방문일, users - 방문자수)이 들어가야하며, 방문일을 기준으로 오름차순 정렬되어있어야 합니다. - 문제 조건 확인 1. 2021년 8월 2일부터 2021년 8월 9일까지 날짜 → where date(~) >= date('2021-08-02') and date(~) = date('2021-08-02') and event_date_kst = date('2021-08-02') and event_date_kst

[SQL] 연습 2022.10.13

[solvesql] 복수 국적 메달 수상한 선수 찾기

Q. 2000년 이후의 메달 수상 기록만 고려했을 때, 메달을 수상한 올림픽 참가 선수 중 2개 이상의 국적으로 메달을 수상한 기록이 있는 선수의 이름을 조회하는 쿼리를 작성해주세요. 조회된 선수의 이름은 오름차순으로 정렬되어 있어야 합니다. - 문제 조건 확인 1. 2000년 이후의 올림픽 게임 기록만 사용 → where year >= 2000 2. 메달을 수상한 올림픽 참가 선수의 국적이 2개 이상 → where medal not null 사용 및 group by + count(distinct ~ ) 문 필요 예상 3. 조회된 선수의 이름은 오름차순 정렬 → order by name - 테이블 확인 - 풀이과정 1. records 테이블과 games 테이블을 조인, where 절 조건 추가 selec..

[SQL] 연습 2022.10.09