SQL

https://school.programmers.co.kr/learn/challenges?order=recent&languages=mysql 코딩테스트 연습 | 프로그래머스 스쿨 개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요! school.programmers.co.kr 1. Lv.1 조건에 맞는 도서와 저자리스트 출력하기 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 ..
1. 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 문제 설명 다음은 어느 자동차 대여 회사의 자동차 대여 기록 정보를 담은 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블입니다. CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블은 아래와 같은 구조로 되어있으며, HISTORY_ID, CAR_ID, START_DATE, END_DATE 는 각각 자동차 대여 기록 ID, 자동차 ID, 대여 시작일, 대여 종료일을 나타냅니다. Column name Type Nullable HISTORY_ID INTEGER FALSE CAR_ID INTEGER FALSE START_DATE DATE FALSE END_DATE DATE FALSE 문제 CAR_RENTAL_COMP..
· DB
1. ROLLUP 컬럼명1 , 컬럼명2 WITH ROLLUP 2개 이상의 컬럼을 이용하여 그룹을 짓는 경우 그룹별 중간 합계(집계함수에 대해서)를 표시 마지막행에는 전체합계가 표시됨 SELECT prod_lgu , prod_name , SUM(cart_qty) FROM prod LEFT JOIN cart ON(prod_id = cart_prod AND left(cart_no,4) = '2005') GROUP BY prod_lgu, prod_name WITH ROLLUP; 2. 사용자 정의 함수 사용자 정의 함수를 만들어서 사용하기 위해 새로운 쿼리를 열어 다음과 같은 함수를 작성한뒤 실행한다. 함수작성시 주의해야할 점은 Delimiter // 뒤에 공백(spacebar) 없도록 할 것 , 마지막 Deli..
1. 자동차 평균 대여 기간 구하기 문제 설명 다음은 어느 자동차 대여 회사의 자동차 대여 기록 정보를 담은 CAR_RENTAL_COMPANY_RENTAL_HISTORY테이블입니다. CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블은 아래와 같은 구조로 되어있으며, HISTORY_ID, CAR_ID, START_DATE, END_DATE는 각각 자동차 대여 기록 ID, 자동차 ID, 대여 시작일, 대여 종료일을 나타냅니다. 문제CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 평균 대여 기간이 7일 이상인 자동차들의 자동차 ID와 평균 대여 기간(컬럼명: AVERAGE_DURATION) 리스트를 출력하는 SQL문을 작성해주세요. 평균 대여 기간은 소수점 두번째 자리..
· DB
Self Join 조건은 한 쪽 M2 테이블에 적용 조회시 M1 테이블에서 조회 SELECT M1.mem_id , M1.mem_name FROM member M1 , member M2 WHERE M2.mem_id = 'b001' AND M1.mem_mileage > M2.mem_mileage; ▶ 조건은 한 쪽 M2 테이블에 적용 / 조회시 M1 테이블에서 조회 Outer Join 특정 테이블 전체에 대한 집계를 하고자 할 때 사용 Outer Join 종류 - Left Outer Join : 테이블 순서 중 왼쪽에 위치한 테이블 전체 - Right Outer Join : 오른쪽에 위치한 테이블 전체 - Full Outer Join : 왼쪽 오른쪽 전체 ( Oracle DB에서만 사용 가능 ) Outer ..
1. 조건에 맞는 사용자 정보 조회하기 문제 설명 다음은 중고 거래 게시판 정보를 담은 USED_GOODS_BOARD 테이블과 중고 거래 게시판 첨부파일 정보를 담은 USED_GOODS_USER 테이블입니다. USED_GOODS_BOARD 테이블은 다음과 같으며 BOARD_ID, WRITER_ID, TITLE, CONTENTS, PRICE, CREATED_DATE, STATUS, VIEWS는 게시글 ID, 작성자 ID, 게시글 제목, 게시글 내용, 가격, 작성일, 거래상태, 조회수를 의미합니다. Column name Type Nullable BOARD_ID VARCHAR(5) FALSE WRITER_ID VARCHAR(50) FALSE TITLE VARCHAR(100) FALSE CONTENTS VARC..
문제 설명 다음은 중고거래 게시판 정보를 담은 USED_GOODS_BOARD 테이블과 중고거래 게시판 첨부파일 정보를 담은 USED_GOODS_FILE 테이블입니다. USED_GOODS_BOARD 테이블은 다음과 같으며 BOARD_ID, WRITER_ID, TITLE, CONTENTS, PRICE, CREATED_DATE, STATUS, VIEWS은 게시글 ID, 작성자 ID, 게시글 제목, 게시글 내용, 가격, 작성일, 거래상태, 조회수를 의미합니다. USED_GOODS_FILE 테이블은 다음과 같으며 FILE_ID, FILE_EXT, FILE_NAME, BOARD_ID는 각각 파일 ID, 파일 확장자, 파일 이름, 게시글 ID를 의미합니다. 문제 USED_GOODS_BOARD와 USED_GOODS_F..
1. 조건에 부합하는 중고거래 댓글 조회하기 문제 설명 다음은 중고거래 게시판 정보를 담은 USED_GOODS_BOARD 테이블과 중고거래 게시판 첨부파일 정보를 담은 USED_GOODS_REPLY 테이블입니다. USED_GOODS_BOARD 테이블은 다음과 같으며 BOARD_ID, WRITER_ID, TITLE, CONTENTS, PRICE, CREATED_DATE, STATUS, VIEWS은 게시글 ID, 작성자 ID, 게시글 제목, 게시글 내용, 가격, 작성일, 거래상태, 조회수를 의미합니다. USED_GOODS_REPLY 테이블은 다음과 같으며 REPLY_ID, BOARD_ID, WRITER_ID, CONTENTS, CREATED_DATE는 각각 댓글 ID, 게시글 ID, 작성자 ID, 댓글 내용..
· DB
조인 (Join) 구문 작성하는 방법 -Inner Join 방식은 일반방식 표준방식 모두 표준처럼 사용됨 Select 테이블1.컬럼1 ... 테이블n. 컬럼1 From 테이블1 , 테이블2 ..... 테이블 n Where 관계조건(PK = FK) And 일반 조건 Select 테이블1.컬럼1 ... 테이블n. 컬럼1 From 테이블1 Inner Join 테이블2 On (관계조건(PK=FK) And 일반조건) Inner Join 테이블 n On (관계조건(PK =FK) And 일반조건) Group By ------------- 그룹이 있는 경우 Having --------------- 그룹조건이 있는 경우 Order By ---..
문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타..
문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. 보호소에 가장 먼저 들어온 동물의 이름을 조회하는 SQL 문을 작성해주세요. 나의 풀이 SELECT NAME FROM ANIMAL_INS WHERE DATETIME = (SELECT MIN(DATETIME) FROM ANIMAL_INS); 집계함수를 사용하기 위해 서브쿼리를 사용하여 where 절에 조건을 달았다. 다른 ..
· DB
1. 집계함수 그룹함수 COUNT() 행의 개수 컬럼명 사용시 NULL 제외 AVG() 평균 NULL 인 경우 처리 필요 SUM() 합계 NULL 인 경우 처리 필요 MAX() 최대값 NULL 인 경우 처리 필요 MIN() 최소값 NULL 인 경우 처리 필요 COUNT() 전체 데이터가 null 일때 COUNT( * ) = 74 COUNT( 컬럼명 ) = 0 => 즉 컬럼명 사용하면 null값을 제외하고 행의 개수를 센다 2. GROUP BY ~ HAVING 절 where절을 사용하는 일반 조건과 달리 그룹에 대한 조건의 경우에는 GROUP BY ~ HAVING 절을 사용한다. GROUP BY 절 : 그룹으로 묶고자 하는 컬럼명 또는 일반 함수를 처리한 컬럼 지정 HAVING 절 : 그룹함수를 이용한 조..
s2h15
'SQL' 태그의 글 목록