SQL 14

[SQL 문제] 상품을 구매한 회원 비율 구하기

문제 설명 USER_INFO 테이블은 아래와 같은 구조로 되어있으며 USER_ID, GENDER, AGE, JOINED는 각각 회원 ID, 성별, 나이, 가입일을 나타냅니다. GENDER 컬럼은 비어있거나 0 또는 1의 값을 가지며 0인 경우 남자를, 1인 경우는 여자를 나타냅니다. ONLINE_SALE 테이블은 아래와 같은 구조로 되어있으며 ONLINE_SALE_ID, USER_ID, PRODUCT_ID, SALES_AMOUNT, SALES_DATE는 각각 온라인 상품 판매 ID, 회원 ID, 상품 ID, 판매량, 판매일을 나타냅니다. 문제 USER_INFO 테이블과 ONLINE_SALE 테이블에서 2021년에 가입한 전체 회원들 중 상품을 구매한 회원수와 상품을 구매한 회원의 비율(=2021년에 가입..

[SQL] MYSQL 구조, 데이터모델링

1. MySQL 기본 구조 구분내용명령어 설명DML (data manipulation language)데이터 조작 언어SELECT, INSERT, UPDATE, DELETE데이터 조회, 삽입, 변경, 삭제DDL (data definition language)데이터 정의 언어CREATE, DROP, ALTER테이블 삭제, 수정DCL (data control language)데이터 제어 언어GRANT, REVOKE테이블 접근 권한 관리정보 조회 명령어 SHOW, DESC, DESCRIBE, EXPLAIN테이블 조회, 설명제어 명령어 USE데이터베이스 선택 용어스키마 (schema = database) : 서로 연관된 테이블을 그룹화한 일종의 폴더데이터서버 : 여러 개의 스키마들이 저장되는 곳 2. MYSQL..

문과생의 SQL 2024.08.02

[SQL 문제] 조건에 부합하는 중고거래 댓글 조회하기

문제 설명 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, 댓글 내용, 작성일을 의미합니다. 문제 USED_GOODS_BOARD와 USED_GOODS_REPLY 테이블에서 2022년 10월에 작성된 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용,..

[MY SQL] where ~ in 사용법

where ~ in 구조1. where 조건에 일치하는 컬럼 in (조건1, 조건2, 조건3 ...) : 조건이 맞는2. where 조건에 일치하는 컬럼 not in (조건1, 조건2, 조건3 ...) : 조건이 아닌 특징- 여러 값(조건)을 or 관계로 나열 (다중 조건)- 조건의 범위를 지정- 목록(조건)에 넣을 값이 여러개일 때 사용하기 좋음- or 연산자보다 실행 속도가 빠르다- in 안에 서브쿼리를 넣을 수 있다 (select) where ~ in 서브쿼리 사용 시 자주 나오는 오류Operand should contain 1 column(s): 왼쪽에는 1개의 컬럼, 오른쪽이 서브쿼리의 결과 두 개의 서브쿼리가 나올 때 왼쪽의 컬럼 갯수가 1개이기 때문에 생기는 에러

문과생의 SQL 2024.08.01

[SQL 문제] 자동차 평균 대여 기간 구하기 (반올림, datediff, having)

문제 설명 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문을 작성해주세요. 평균 대여 기간은 소수점 두번째 자리에서 반올림하고, 결과는 평균 대여 기간을 기준으로 내림차순 정렬해주시고, 평균 대여 기간이 ..

[SQL 문제] 조건에 부합하는 중고거래 상태 조회하기

문제 설명 USED_GOODS_BOARD 테이블입니다. USED_GOODS_BOARD 테이블은 다음과 같으며 BOARD_ID, WRITER_ID, TITLE, CONTENTS, PRICE, CREATED_DATE, STATUS, VIEWS은 게시글 ID, 작성자 ID, 게시글 제목, 게시글 내용, 가격, 작성일, 거래상태, 조회수를 의미합니다. 문제 USED_GOODS_BOARD 테이블에서 2022년 10월 5일에 등록된 중고거래 게시물의 게시글 ID, 작성자 ID, 게시글 제목, 가격, 거래상태를 조회하는 SQL문을 작성해주세요. 거래상태가 SALE 이면 판매중, RESERVED이면 예약중, DONE이면 거래완료 분류하여 출력해주시고, 결과는 게시글 ID를 기준으로 내림차순 정렬해주세요. 문제 풀이SE..

[SQL 문제] 즐겨찾기가 가장 많은 식당 정보 출력하기 (subquery)

문제 설명다음은 식당의 정보를 담은 REST_INFO 테이블입니다. REST_INFO 테이블은 다음과 같으며 REST_ID, REST_NAME, FOOD_TYPE, VIEWS, FAVORITES, PARKING_LOT, ADDRESS, TEL은 식당 ID, 식당 이름, 음식 종류, 조회수, 즐겨찾기수, 주차장 유무, 주소, 전화번호를 의미합니다. 문제REST_INFO 테이블에서 음식종류별로 즐겨찾기수가 가장 많은 식당의 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회하는 SQL문을 작성해주세요. 이때 결과는 음식 종류를 기준으로 내림차순 정렬해주세요. 문제 풀이select *from rest_infowhere (favorites, food_type) in (select max(favorites), ..

[SQL 문제] 3월에 태어난 여성 회원 목록 출력하기

문제 설명다음은 식당 리뷰 사이트의 회원 정보를 담은 MEMBER_PROFILE 테이블입니다. MEMBER_PROFILE 테이블은 다음과 같으며 MEMBER_ID, MEMBER_NAME, TLNO, GENDER, DATE_OF_BIRTH는 회원 ID, 회원 이름, 회원 연락처, 성별, 생년월일을 의미합니다. 문제MEMBER_PROFILE 테이블에서 생일이 3월인 여성 회원의 ID, 이름, 성별, 생년월일을 조회하는 SQL문을 작성해주세요. 이때 전화번호가 NULL인 경우는 출력대상에서 제외시켜 주시고, 결과는 회원ID를 기준으로 오름차순 정렬해주세요. 주의 사항DATE_OF_BIRTH의 데이트 포맷이 예시와 동일해야 정답처리 됩니다. 문제 풀이SELECT MEMBER_ID, MEMBER_NAM..

[SQL 문제] 가격대 별 상품 개수 구하기 (DIV 함수)

문제 설명REST_INFO 테이블에서 음식종류별로 즐겨찾기수가 가장 많은 식당의 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회하는 SQL문을 작성해주세요. 다음은 어느 의류 쇼핑몰에서 판매중인 상품들의 정보를 담은 PRODUCT 테이블입니다. PRODUCT 테이블은 아래와 같은 구조로 되어있으며, PRODUCT_ID, PRODUCT_CODE, PRICE는 각각 상품 ID, 상품코드, 판매가를 나타냅니다.이때 결과는 음식 종류를 기준으로 내림차순 정렬해주세요. 문제PRODUCT 테이블에서 만원 단위의 가격대 별로 상품 개수를 출력하는 SQL 문을 작성해주세요. 이때 컬럼명은 각각 컬럼명은 PRICE_GROUP, PRODUCTS로 지정해주시고 가격대 정보는 각 구간의 최소금액(10,000원 이상 ~ 20..

[SQL문제] 평균 일일 대여 요금 구하기 (round 함수)

문제 설명다음은 어느 자동차 대여 회사에서 대여중인 자동차들의 정보를 담은 CAR_RENTAL_COMPANY_CAR 테이블입니다. CAR_RENTAL_COMPANY_CAR 테이블은 아래와 같은 구조로 되어있으며, CAR_ID, CAR_TYPE, DAILY_FEE, OPTIONS 는 각각 자동차 ID, 자동차 종류, 일일 대여 요금(원), 자동차 옵션 리스트를 나타냅니다. 문제CAR_RENTAL_COMPANY_CAR 테이블에서 자동차 종류가 'SUV'인 자동차들의 평균 일일 대여 요금을 출력하는 SQL문을 작성해주세요. 이때 평균 일일 대여 요금은 소수 첫 번째 자리에서 반올림하고, 컬럼명은 AVERAGE_FEE 로 지정해주세요. 문제 풀이SELECT ROUND(avg(DAILY_FEE), 0) AVERA..