SQL 20241005
·
DB/SQL
20241005===========================================# Lv 1. 조건에 맞는 도서 리스트 출력하기SELECT BOOK_ID, DATE_FORMAT(PUBLISHED_DATE,"%Y-%m-%d") AS PUBLISHED_DATEFROM BOOKWHERE CATEGORY = '인문'AND (PUBLISHED_DATE BETWEEN '2021-01-01' AND '2021-12-31')ORDER BY BOOK_ID,PUBLISHED_DATE;# Lv 2. 3월에 태어난 여성 회원 목록 출력하기SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH,'%Y-%m-%d') AS DATE_OF_BIRTHFROM ME..
SQL 20241003
·
DB/SQL
20241003===========================================# Lv 3. 대여기록이 존재하는 자동차 리스트 구하기SELECT DISTINCT A.CAR_ID FROM CAR_RENTAL_COMPANY_CAR ALEFT JOIN CAR_RENTAL_COMPANY_RENTAL_HISTORY BON A.CAR_ID = B.CAR_IDWHERE A.CAR_TYPE = '세단'AND B.START_DATE BETWEEN '2022-10-01' AND '2022-10-31' ORDER BY CAR_ID DESC;# Lv. 3 조건에 맞는 사용자와 총 거래금액 조회하기SELECT B.USER_ID,B.NICKNAME,SUM(PRICE) AS TOTAL_SALESFROM USED_GOO..
SQL 20241002
·
DB/SQL
IN 연산자에 대해서 좀더 깊이 알 수 있었다.%와 같은 와일드카드를 사용하여 유사한 문자를 판별할때는IN연산자를 사용할 수 없다는 것을 알았다.IN 연산자는 열거형과 같이 정확한 문자를 찾기 위해 사용하는 연산자였다.쿼리가 길어져 보기싫어 IN을 써보려고 했지만 실패함으로써좋은 지식을 하나 더 얻을 수 있었다.  20241002===========================================# Lv 3. 오랜기간 보호한 동물(2)SELECT B.ANIMAL_ID, B.NAMEFROM ANIMAL_INS A, ANIMAL_OUTS BWHERE A.ANIMAL_ID = B.ANIMAL_IDORDER BY DATEDIFF(B.DATETIME,A.DATETIME) DESCLIMIT 2;# Lv 2..
SQL 20241001
·
DB/SQL
20241001===========================================-- Lv 2. 성분으로 구분한 아이스크림 총 주문량SELECT INGREDIENT_TYPE, SUM(TOTAL_ORDER) AS TOTAL_ORDERFROM FIRST_HALF ALEFT JOIN ICECREAM_INFO BON A.FLAVOR = B.FLAVORGROUP BY B.INGREDIENT_TYPEORDER BY TOTAL_ORDER;-- Lv 3. 오랜기간 보호한 동물 (1)SELECT A.NAME,A.DATETIMEFROM ANIMAL_INS ALEFT JOIN ANIMAL_OUTS BON A.ANIMAL_ID = B.ANIMAL_IDWHERE B.ANIMAL_ID IS NULLORDER BY A...
SQL 20240929
·
DB/SQL
20240929===========================================-- SQL Lv 3. 카테고리별 도서 판매량 집계하기SELECT CATEGORY, SUM(SALES) AS TOTAL_SALESFROM BOOK ARIGHT JOIN BOOK_SALES B ON A.BOOK_ID = B.BOOK_IDWHERE B.SALES_DATE BETWEEN DATE '2022-01-01' AND DATE '2022-01-31'GROUP BY A.CATEGORYORDER BY 1;-- LV 2. 상품별 오프라인 매출 구하기SELECT P.PRODUCT_CODE, SUM(SALES_AMOUNT * P.PRICE) AS SALESFROM PRODUCT P RIGHT JOIN OFFLINE_SAL..
SQL 20240924
·
DB/SQL
20240924===========================================-- SQL Lv 1. 인기있는 아이스크림SELECT FLAVOR FROM FIRST_HALFORDER BY TOTAL_ORDER DESC, SHIPMENT_ID;-- SQL Lv 1. 12세 이하인 여자 환자 목록 출력하기SELECT PT_NAME, PT_NO, GEND_CD, AGE, COALESCE(TLNO,'NONE')FROM PATIENTWHERE AGE
SQL 20240922
·
DB/SQL
20240922===========================================-- SQL Lv 2. 고양이와 개는 몇 마리 있을까SELECT ANIMAL_TYPE,COUNT(*) AS "count"FROM ANIMAL_INSGROUP BY ANIMAL_TYPEORDER BY ANIMAL_TYPE;-- SQL Lv 2. 중성화 여부 파악하기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_INSORDER BY ANIMAL_ID;-- SQL Lv..
SQL 20240921
·
DB/SQL
20240921===========================================-- SQL Lv 2. 카테고리별 상품 개수 구하기SELECT SUBSTR(PRODUCT_CODE,0,2) AS CATEGORY, COUNT(*) AS PRODUCTSFROM PRODUCTGROUP BY SUBSTR(PRODUCT_CODE,0,2)ORDER BY CATEGORY;-- SQL Lv 1. 조건에 맞는 회원수 구하기SELECT COUNT(*) AS USERSFROM USER_INFOWHERE AGE BETWEEN 20 AND 29AND JOINED BETWEEN TO_DATE('2021-01-01','YYYY-MM-DD') AND TO_DATE('2021-12-31','YYYY-MM-DD');-- SQL..
SQL 20240919
·
DB/SQL
20240919===========================================# SQL Lv 1. 흉부외과 또는 일반외과 의사 목록 출력하기#DATE_FORMAT(HIRE_YMD,"%Y-%M-%D") %D 인지 %d인지에 따라 표현방식 다름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;# SQL Lv 1. 역순 정렬하기SELECT NAME, DATETIMEFROM ANIMAL_INSORDER BY ANIMAL_ID DESC;# SQL Lv 2. NULL 처리..
SQL 20240918
·
DB/SQL
20240918===========================================# SQL Lv 1. 나이 정보가 없는 회원 수 구하기SELECT COUNT(*)FROM USER_INFOWHERE AGE IS NULL;# SQL Lv 1. 강원도에 위치한 생산공장 목록 출력하기SELECT FACTORY_ID,FACTORY_NAME,ADDRESSFROM FOOD_FACTORYWHERE ADDRESS LIKE "강원도%";# SQL Lv 1. 가장 비싼 상품 구하기SELECT MAX(PRICE) AS MAX_PRICEFROM PRODUCT;# SQL Lv 1. 경기도에 위치한 식품창고 목록 출력하기# COALESCE(NAME,"DEFAULT") NAME 출력하고 NAME IS NULL 이면 DE..