[SolveSQL/난이도 3] Advent of SQL 2025(MySQL)
·
SolveSQL/난이도 3
크리스마스를 기념할 완벽한 와인 찾기SELECT * FROM winesWHERE color = 'white'AND quality >= 7AND density > ( SELECT AVG(density) FROM wines)AND residual_sugar > ( SELECT AVG(residual_sugar) FROM wines)AND pH ( SELECT AVG(citric_acid) FROM wines WHERE color = 'white');WHERE절에서 평균은 서브쿼리로 구하자. 두 대회 연속으로 출전한 기록이 있는 배구 선수WITH successive_record AS ( SELECT A.id AS `id`, A.name AS `name`, G.year AS `year`, LAG..
[SolveSQL/난이도 3] 멘토링 짝 리스트(MySQL)
·
SolveSQL/난이도 3
멘토링 짝꿍 리스트WITH mentee AS ( SELECT employee_id AS `mentee_id`, name AS `mentee_name`, department FROM employees WHERE join_date >= DATE_SUB('2021-12-31', INTERVAL 3 MONTH) AND join_date ~개월, ~년 이내 데이터를 구하려면 DATE_SUB(날짜, INTERVAL N MONTH/YEAR) 함수를 사용하면 된다.가능한 모든 멘티-멘토 짝꿍을 매칭해주기 위해 CROSS JOIN을 활용한다.
[SolveSQL/난이도 2] 점검이 필요한 자전거 찾기(MySQL)
·
SolveSQL/난이도 2
점검이 필요한 자전거 찾기SELECT bike_id FROM rental_historyWHERE rent_at >= '2021-01-01' AND rent_at 50000
[SolveSQL/난이도 2] Advent of SQL 2025(MySQL)
·
SolveSQL/난이도 2
12월 우수 고객 찾기SELECT customer_id FROM recordsWHERE order_date >= '2020-12-01' AND order_date = 1000 스탬프를 찍어드려요SELECT ( CASE WHEN total_bill >= 25 THEN 2 WHEN total_bill >= 15 THEN 1 ELSE 0 END) AS `stamp`,COUNT(*) AS `count_bill`FROM tipsGROUP BY `stamp`ORDER BY `stamp`CASE WHEN THEN ELSE END 구문으로 스탬프의 개수를 분류한다. DVD 대여점 우수 고객 찾기SELECT R.customer_id FROM rental RLEFT JOIN customer C ON R.custom..
[SolveSQL/난이도 1] 일부 데이터 조회하기 & 데이터 그룹으로 묶기(MySQL)
·
SolveSQL/난이도 1
일부 데이터 조회하기SELECT * FROM pointsWHERE quartet = "I"; 데이터 그룹으로 묶기SELECT quartet, ROUND(AVG(x), 2) AS `x_mean`, ROUND(VAR_SAMP(x), 2) AS `x_var`, ROUND(AVG(y), 2) AS `y_mean`, ROUND(VAR_SAMP(y), 2) AS `y_var`FROM pointsGROUP BY quartet반올림 함수 ROUND(N, M), 표본분산 구하기 VAR_SAMP(X)
[SolveSQL/난이도 1] Advent of SQL 2025(MySQL)
·
SolveSQL/난이도 1
사랑에 대한 영화 찾기SELECT title, year, rotten_tomatoes FROM moviesWHERE title LIKE '%Love%' OR title LIKE '%love%'ORDER BY rotten_tomatoes DESC, year DESC; 서울숲에 놀러 가기 좋은 날SELECT measured_at AS `good_day` FROM measurementsWHERE measured_at >= '2022-12-01' AND measured_at 펭귄의 종과 몸무게 조회하기SELECT species, body_mass_g FROM penguinsWHERE species IS NOT NULL AND body_mass_g IS NOT NULLORDER BY body_mass_g DES..
[Programmers/Level 1] 한 해에 잡은 물고기 수 구하기(MySQL)
·
Programmers/Level 1~2
문제 설명낚시앱에서 사용하는 FISH_INFO 테이블은 잡은 물고기들의 정보를 담고 있습니다. FISH_INFO 테이블의 구조는 다음과 같으며 ID, FISH_TYPE, LENGTH, TIME은 각각 잡은 물고기의 ID, 물고기의 종류(숫자), 잡은 물고기의 길이(cm), 물고기를 잡은 날짜를 나타냅니다.Column nameTypeNullableIDINTEGERFALSEFISH_TYPEINTEGERFALSELENGTHFLOATTRUETIMEDATEFALSE 단, 잡은 물고기의 길이가 10cm 이하일 경우에는 LENGTH 가 NULL 이며, LENGTH 에 NULL 만 있는 경우는 없습니다. 문제FISH_INFO 테이블에서 2021년도에 잡은 물고기 수를 출력하는 SQL 문을 작성해주세요.이 때 컬럼명은 ..
[Programmers/Level 2] 연도 별 평균 미세먼지 농도 조회하기(MySQL)
·
Programmers/Level 1~2
문제 설명AIR_POLLUTION 테이블은 전국의 월별 미세먼지 정보를 담은 테이블입니다. AIR_POLLUTION 테이블의 구조는 다음과 같으며 LOCATION1, LOCATION2, YM, PM_VAL1, PM_VAL2은 각각 지역구분1, 지역구분2, 측정일, 미세먼지 오염도, 초미세먼지 오염도를 의미합니다.Column nameTypeNullableLOCATION1VARCHARFALSELOCATION2VARCHARFALSEYMDATEFALSEPM_VAL1NUMBERFALSEPM_VAL2NUMBERFALSE 문제AIR_POLLUTION 테이블에서 수원 지역의 연도 별 평균 미세먼지 오염도와 평균 초미세먼지 오염도를 조회하는 SQL문을 작성해주세요. 이때, 평균 미세먼지 오염도와 평균 초미세먼지 오염도의..
[Programmers/Level 2] DATETIME에서 DATE로 형 변환(MySQL)
·
Programmers/Level 1~2
문제 설명ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.NAMETYPENULLABLEANIMAL_IDVARCHAR(N)FALSEANIMAL_TYPEVARCHAR(N)FALSEDATETIMEDATETIMEFALSEINTAKE_CONDITIONVARCHAR(N)FALSENAMEVARCHAR(N)TRUESEX_UPON_INTAKEVARCHAR(N)FALSE ANIMAL_INS 테이블에..
[Programmers/Level 2] 카테고리 별 상품 개수 구하기(MySQL)
·
Programmers/Level 1~2
문제 설명다음은 어느 의류 쇼핑몰에서 판매중인 상품들의 정보를 담은 PRODUCT 테이블입니다. PRODUCT 테이블은 아래와 같은 구조로 되어있으며, PRODUCT_ID, PRODUCT_CODE, PRICE는 각각 상품 ID, 상품코드, 판매가를 나타냅니다.Column nameTypeNullablePRODUCT_IDINTEGERFALSEPRODUCT_CODEVARCHAR(8)FALSEPRICEINTEGERFALSE 상품 별로 중복되지 않는 8자리 상품코드 값을 가지며, 앞 2자리는 카테고리 코드를 의미합니다. 문제PRODUCT 테이블에서 상품 카테고리 코드(PRODUCT_CODE 앞 2자리) 별 상품 개수를 출력하는 SQL문을 작성해주세요. 결과는 상품 카테고리 코드를 기준으로 오름차순 정렬해주세요. ..
[Programmers/Level 3] 오랜 기간 보호한 동물(2)(MySQL)
·
Programmers/Level 3
문제 설명ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.NAMETYPENULLABLEANIMAL_IDVARCHAR(N)FALSEANIMAL_TYPEVARCHAR(N)FALSEDATETIMEDATETIMEFALSEINTAKE_CONDITIONVARCHAR(N)FALSENAMEVARCHAR(N)TRUESEX_UPON_INTAKEVARCHAR(N)FALSE ANIMAL_OUTS 테이블..
[Programmers/Level 2] 중성화 여부 파악하기(MySQL)
·
Programmers/Level 1~2
문제 설명ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.NAMETYPENULLABLEANIMAL_IDVARCHAR(N)FALSEANIMAL_TYPEVARCHAR(N)FALSEDATETIMEDATETIMEFALSEINTAKE_CONDITIONVARCHAR(N)FALSENAMEVARCHAR(N)TRUESEX_UPON_INTAKEVARCHAR(N)FALSE 보호소의 동물이 중성화되었는..
[Programmers/Level 2] 이름에 el이 들어가는 동물 찾기(MySQL)
·
Programmers/Level 1~2
문제 설명ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.NAMETYPENULLABLEANIMAL_IDVARCHAR(N)FALSEANIMAL_TYPEVARCHAR(N)FALSEDATETIMEDATETIMEFALSEINTAKE_CONDITIONVARCHAR(N)FALSENAMEVARCHAR(N)TRUESEX_UPON_INTAKEVARCHAR(N)FALSE 보호소에 돌아가신 할머니가 ..
[Programmers/Level 2] 루시와 엘라 찾기(MySQL)
·
Programmers/Level 1~2
문제 설명ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.NAMETYPENULLABLEANIMAL_IDVARCHAR(N)FALSEANIMAL_TYPEVARCHAR(N)FALSEDATETIMEDATETIMEFALSEINTAKE_CONDITIONVARCHAR(N)FALSENAMEVARCHAR(N)TRUESEX_UPON_INTAKEVARCHAR(N)FALSE 동물 보호소에 들어온 동물 ..
[Programmers/Level 4] 취소되지 않은 진료 예약 조회하기(MySQL)
·
Programmers/Level 4~5
문제 설명다음은 환자 정보를 담은 PATIENT 테이블과 의사 정보를 담은 DOCTOR 테이블, 그리고 진료 예약목록을 담은 APPOINTMENT에 대한 테이블입니다. PATIENT 테이블은 다음과 같으며 PT_NO, PT_NAME, GEND_CD, AGE, TLNO는 각각 환자번호, 환자이름, 성별코드, 나이, 전화번호를 의미합니다.Column nameTypeNullablePT_NOVARCHAR(N)FALSEPT_NAMEVARCHAR(N)FALSEGEND_CDVARCHAR(N)FALSEAGEINTEGERFALSETLNOVARCHAR(N)TRUE DOCTOR 테이블은 다음과 같으며 DR_NAME, DR_ID, LCNS_NO, HIRE_YMD, MCDP_CD, TLNO는 각각 의사이름, 의사ID, 면허번호..