oracle(16)
-
[Oracle] 취소되지 않은 진료 예약 조회하기
문제 PATIENT, DOCTOR 그리고 APPOINTMENT 테이블에서 2022년 4월 13일 취소되지 않은 흉부외과(CS) 진료 예약 내역을 조회하는 SQL문을 작성해주세요. 진료예약번호, 환자이름, 환자번호, 진료과코드, 의사이름, 진료예약일시 항목이 출력되도록 작성해주세요. 결과는 진료예약일시를 기준으로 오름차순 정렬해주세요. Pseudo Code 3개의 테이블 조인 APNT_YMD 컬럼이 20220413 이고 MCDP_CD이 CS이고 APNT_CNCL_YN가 N인 데이터가 나오도록 필터링 진료예약번호, 환자이름, 환자번호, 진료과코드, 의사이름, 진료예약일시 항목 추출 APNT_CNCL_YN 기준 ASC 내코드 SELECT A.APNT_NO, P.PT_NAME, P.PT_NO, D.MCDP_CD..
2023.04.25 -
[Oracle] 자동차 대여 기록에서 장기/단기 대여 구분하기
문제 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 대여 시작일이 2022년 9월에 속하는 대여 기록에 대해서 대여 기간이 30일 이상이면 '장기 대여' 그렇지 않으면 '단기 대여' 로 표시하는 컬럼(컬럼명: RENT_TYPE)을 추가하여 대여기록을 출력하는 SQL문을 작성해주세요. 결과는 대여 기록 ID를 기준으로 내림차순 정렬해주세요. Pseudo Code CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 대여 시작일이 2022년 9월인 데이터만 추출하는 SQL문 작성 START_DATE, END_DATE컬럼은 예시의 데이트 포맷과 동일해야 정답처리 되므로 그에 맞게 포매팅 해준다. 대여 기간이 30일 이상이면 장기, 그외는 단기 대여로 표시할 수 있도록..
2023.04.24 -
[Oracle] 주문량이 많은 아이스크림들 조회하기
문제 7월 아이스크림 총 주문량과 상반기의 아이스크림 총 주문량을 더한 값이 큰 순서대로 상위 3개의 맛을 조회하는 SQL 문을 작성해주세요. Pseudo Code FIRST_HALF와 JULY 테이블에서 FLAVOR 컬럼을 기준으로 총 주문량을 알기 위해 중복이 되지 않도록 UNION ALL하여 새로운 테이블을 만든다. 1의 결과 SQL문으로 부터 FLAVOR별 주문량을 알아내기 위해 FLAVOR 컬럼을 그룹핑해준뒤 집계함수로 TOTAL_ORDER 계산한다. 총주문량이 많은 순서부터 뽑아내기 위해 TOTAL_ORDER 컬럼 기준 DESC 2의 결과 테이블로부터 ROWNUM이 1,2,3인 FLAVOR 값을 반환한다. 내코드 SELECT FLAVOR FROM ( SELECT FLAVOR, SUM(TOTAL..
2023.04.23 -
[Oracle] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기
문제 CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블에서 자동차 종류가 '세단' 또는 'SUV' 인 자동차 중 2022년 11월 1일부터 2022년 11월 30일까지 대여 가능하고 30일간의 대여 금액이 50만원 이상 200만원 미만인 자동차에 대해서 자동차 ID, 자동차 종류, 대여 금액(컬럼명: FEE) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 대여 금액을 기준으로 내림차순 정렬하고, 대여 금액이 같은 경우 자동차 종류를 기준으로 오름차순 정렬, 자동차 종류까지 같은 경우 자동차 ID를 기준으로 내림차순 정렬해주세요. Pseudo Code 자동차의 ID, ..
2023.04.22 -
[Oracle] 저자 별 카테고리 별 매출액 집계하기
문제 2022년 1월의 도서 판매 데이터를 기준으로 저자 별, 카테고리 별 매출액(TOTAL_SALES = 판매량 * 판매가) 을 구하여, 저자 ID(AUTHOR_ID), 저자명(AUTHOR_NAME), 카테고리(CATEGORY), 매출액(SALES) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 저자 ID를 오름차순으로, 저자 ID가 같다면 카테고리를 내림차순 정렬해주세요. Pseudo Code 1. 판매일이 2022년 1월인 BOOK_SALES 데이터 추출 2. BOOK, AUTHOR, 1번 테이블을 조인 3. 저자별 카테고리별 데이터 필요하므로 AUTHOR_ID, AUTHOR_NAME, CATEGORY로 그룹바이 4. 카테고리별 매출액은 집계함수 SUM 사용해서 판매량*판매가 계산 5. AUTH..
2023.04.15 -
[Oracle] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기
문제 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 대여 시작일을 기준으로 2022년 8월부터 2022년 10월까지 총 대여 횟수가 5회 이상인 자동차들에 대해서 해당 기간 동안의 월별 자동차 ID 별 총 대여 횟수(컬럼명: RECORDS) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 월을 기준으로 오름차순 정렬하고, 월이 같다면 자동차 ID를 기준으로 내림차순 정렬해주세요. 특정 월의 총 대여 횟수가 0인 경우에는 결과에서 제외해주세요. Pseudo Code 1. 대여 시작일을 기준으로 2022년 8월부터 2022년 10월까지 총 대여 횟수가 5회 이상인 자동차를 구하는 SELECT문 출력 - 2022년 8월부터 2022년 10월까지 -> START_DATE 날짜변환, b..
2023.04.01 -
[Oracle] 조건에 부합하는 중고거래 댓글 조회하기
문제 설명 다음은 중고거래 게시판 정보를 담은 USED_GOODS_BOARD 테이블과 중고거래 게시판 첨부파일 정보를 담은 USED_GOODS_REPLY 테이블입니다. 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 VARCHAR(1000) FALSE PRICE NU..
2023.03.29 -
[SQLD] SQL활용 - 파티션
Partition 파티션은 대용량의 테이블을 여러 개의 데이터 파일에 분리해 저장한다. 테이블의 데이터가 물리적으로 분리된 데이터 파일에 저장되면 입력, 수정, 삭제 조회 성능이 향상된다. 파티션은 각각의 파티션 별로 독립적으로 관리될 수 있다. 즉, 파티션 별로 백업하고 복구가 가능하면 파티션 전용 인덱스 생성도 가능하다. 파티션은 ORACLE 데이터베이스의 논리적 관리 단위인 테이블 스페이스 간에 이동이 가능하고 데이터를 조회할 때 데이터의 범위를 줄여 성능을 향상 시킨다. Range Partiton 가장 일반적인 파티션 형태로 테이블의 컬럼 중에서 값의 범위를 기준으로 여러 개의 파티션으로 데이터를 나누어 저장하는 기능이다. List Partition 순서와 상관없이, 사용자가 미리 정한 그룹핑 특..
2023.03.17 -
[SQLD] SQL활용- 윈도우 함수
윈도우 함수 윈도우 함수는 행과 행 간의 관계를 정의하기 위해 제공되는 함수이다. 윈도우 함수를 사용해 순위, 합계 , 평균, 행 위치등을 조작 할 수 있다 윈도우 함수 구조 SELECT WINDOW_FUNC(ARGUMENTS) OVER (PARTITION BY 컬럼 ORDER BY WINDOWING절) FROM 테이블명 ARGUMENTS(인수) - 윈도우 함수에 따라 0-N개의 인수를 설정한다 PARTITION BY - 전체 집합을 기준에 의해 소그룹 으로 나눈다. ORDER BY - 어떤 항목에 대해 정렬한다. WIDOWING - 행 기준의 범위를 정한다. ROWS는 물리적 결과의 행 수이고 RANGE는 논리적인 값에 의한 범위이다. WINDOWING WINDOWING 절은 함수의 대상이 되는 행 기..
2023.03.17 -
[SQLD] SQL활용 - GROUP 함수
그룹 함수 그룹 함수란 하나 이상의 행을 그룹으로 묶어 연산하여 총합(SUM), 최댓값(MAX), 평균(AVG) 등의 하나의 결과로 나타내는 것이다. GROUP BY절 WHERE 절을 통해 조건에 맞는 데이터를 조회했지만 테이블에 1차적으로 존재하는 데이터 이외의 정보, 2차 가공 정보도 필요하다. GROUP BY 절은 SQL 문에서 FROM 절과 WHERE 절 뒤에 오며, 데이터들을 작은 그룹으로 분류하여 소그룹에 대한 항목별로 통계 정보를 얻을 때 추가로 사용되는 SQL문이다. 특징 - GROUP BY 절을 통해 소그룹별 기준을 정한 후, SELECT 절에 집계 함수를 사용한다. - 집계 함수의 통계 정보는 NULL 값을 가진 행을 제외하고 수행한다. - GROUP BY 절에서는 SELECT 절과는 ..
2023.03.17