SQL - 20250627
·
DB/SQL
✅ 문제 요약 STATION 테이블에서CITY 컬럼이 모음(a, e, i, o, u)으로 끝나는 도시만 선택중복 없이(DISTINCT) 출력 ✅ 정답 SQLSELECT DISTINCT CITYFROM STATIONWHERE CITY LIKE '%a' OR CITY LIKE '%e' OR CITY LIKE '%i' OR CITY LIKE '%o' OR CITY LIKE '%u'; SELECT DISTINCT CITYFROM STATIONWHERE LOWER(SUBSTRING(CITY,1,1)) IN ('a','e','i','o','u') AND LOWER(SUBSTRING(CITY,-1,1)) IN ('a','e','i','o','u');
SQL - 20250625
·
DB/SQL
✅ 문제 요약 STATION 테이블에서가장 짧은 CITY 이름가장 긴 CITY 이름 이름 길이가 같을 경우 알파벳순으로 가장 빠른 도시를 선택각각의 문자 길이도 함께 출력 ✅ 정답 쿼리 1. 최단 도시 이름SELECT CITY, LENGTH(CITY)FROM STATION ORDER BY LENGTH(CITY), CITY ASCLIMIT 1; LENGTH(CITY)로 문자 길이 정렬같은 길이일 경우 CITY 오름차순가장 위에 오는 한 건 출력 2. 최장 도시 이름SELECT CITY, LENGTH(CITY)FROM STATION ORDER BY LENGTH(CITY) DESC, CITY ASCLIMIT 1; LENGTH(CITY) 내림차순길이가 같을 경우 CITY 알파벳순최장 도시 1건 출력
SQL - 20250605
·
DB/SQL
✅ 문제 요약 STATION 테이블에서CITY 컬럼의전체 행 수 - 중복 제거한 행 수의 차이 계산 즉, 중복된 CITY 이름의 개수. ✅ 정답 SQLSELECT COUNT(*) - COUNT(DISTINCT CITY)FROM STATION; 🔍 핵심 개념함수설명COUNT(*)전체 행 수COUNT(DISTINCT CITY)중복 제거된 도시 이름 개수차이 계산 -중복된 도시 이름의 수를 의미함
SQL - 20250604
·
DB/SQL
✅ 문제 요구 요약 CITY 테이블에서COUNTRYCODE = 'USA' (미국 도시)POPULATION > 100000 (인구 10만 초과)모든 컬럼 조회 ✅ 정답 SQLSELECT *FROM CITYWHERE POPULATION > 100000 AND COUNTRYCODE = 'USA'; 🔍 참고 포인트 SELECT * : 모든 컬럼 조회WHERE절 조건 2개는 AND로 연결VARCHAR2, NUMBER 등 타입은 Oracle 기준 표현이지만, SQL 로직에는 영향 없음
SQL - 20250515
·
DB/SQL
🐍 Python 개발자 찾기 – 쿼리 분석SELECT ID, EMAIL, FIRST_NAME, LAST_NAMEFROM DEVELOPER_INFOSWHERE SKILL_1 = 'Python' OR SKILL_2 = 'Python' OR SKILL_3 = 'Python'ORDER BY ID ASC; ✅ WHERE SKILL_1 = ‘Python’ OR … 세 개의 스킬 컬럼 중 하나라도 ‘Python’인 개발자만 필터링OR 조건으로 다중 필드 비교스키마가 수직 분리되어 있지 않은 정규화되지 않은 구조에서 자주 사용 ✅ ORDER BY ID ASC ID 기준으로 오름차순 정렬 🧾 게시글 3건 이상 작성한 사용자 정보 조회 – 쿼리 분석SELECT UU.USER_ID, UU.NICK..
📅 SQL에서 DATE, DATETIME, TIMESTAMP 완전 정복 (MySQL)
·
DB/SQL
이게 도대체 뭐가 다른 거야? 🤯MySQL을 쓰다 보면 DATE, DATETIME, TIMESTAMP 중 어떤 걸 써야 할지 헷갈릴 때가 많다.오늘은 이 세 가지 타입의 차이점과 특징, 변환 방식, 실전 사용 팁까지 모두 정리해보자. ✅ 1. 기본 정의자료형설명저장 범위시간 포함 여부타임존 영향DATE날짜만 저장1000-01-01 ~ 9999-12-31❌ (시간 없음)❌DATETIME날짜 + 시간 저장1000-01-01 00:00:00 ~ 9999-12-31 23:59:59✅❌TIMESTAMP날짜 + 시간 저장 (UNIX 기반)1970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07 UTC✅✅ (타임존 영향 받음) 💡 핵심 정리 DATE: 연/월/일만 필요할 때DATETIM..
SQL - 20250514
·
DB/SQL
💼 부서별 평균 연봉 조회 – 쿼리 분석SELECT HE.DEPT_ID, HD.DEPT_NAME_EN, ROUND(AVG(SAL),0) AS AVG_SALFROM HR_EMPLOYEES HEJOIN HR_DEPARTMENT HD ON HE.DEPT_ID = HD.DEPT_IDGROUP BY HE.DEPT_IDORDER BY AVG_SAL DESC; ✅ JOIN ONJOIN HR_DEPARTMENT HD ON HE.DEPT_ID = HD.DEPT_ID 부서 ID 기준으로 사원 테이블과 부서 테이블 연결부서 이름을 함께 출력하기 위해 필요 ✅ AVG(SAL), ROUND(…, 0) AVG(SAL): 부서별 평균 연봉 계산ROUND(..., 0): 소수점 없이 정수로 반올림 ✅ GROUP BY HE...
SQL - 20250513
·
DB/SQL
🚗 SUV 평균 일일 대여 요금 구하기 – 쿼리 분석SELECT ROUND(AVG(DAILY_FEE)) AS AVERAGE_FEEFROM CAR_RENTAL_COMPANY_CARWHERE CAR_TYPE = 'SUV'; ✅ WHERE CAR_TYPE = ‘SUV’ CAR_TYPE이 'SUV'인 차량만 필터링대상 조건에 해당하는 행만 평균 계산에 포함 ✅ AVG(DAILY_FEE) DAILY_FEE(일일 대여 요금)의 평균값 계산 ✅ ROUND(…) 평균 결과를 소수 첫째 자리에서 반올림실수 → 정수로 반환됨 🐶 모든 동물 보호소 기록 조회 – 쿼리 분석SELECT ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKEF..
SQL - 20250508
·
DB/SQL
🌫️ 수원 지역 연도별 평균 미세먼지 농도 – 쿼리 분석SELECT EXTRACT(YEAR FROM YM) AS YEAR, ROUND(AVG(PM_VAL1), 2) AS PM10, ROUND(AVG(PM_VAL2), 2) AS 'PM2.5'FROM AIR_POLLUTIONWHERE LOCATION2 = '수원'GROUP BY EXTRACT(YEAR FROM YM)ORDER BY YEAR; ✅ EXTRACT(YEAR FROM YM) YM에서 연도만 추출GROUP BY와 SELECT에 동일하게 사용해 연도별 집계 수행 ✅ ROUND(AVG(PM_VAL1), 2) 미세먼지(PM10)의 평균값을 소수 둘째 자리까지 반올림AVG()는 집계 함수, ROUND(..., 2)로 정밀도 조..
SQL - 20250506
·
DB/SQL
💰 5월 식품들의 총매출 조회하기 – 쿼리 분석SELECT FD.PRODUCT_ID, FD.PRODUCT_NAME, SUM(FD.PRICE * FO.AMOUNT) AS TOTAL_SALESFROM FOOD_ORDER FOJOIN FOOD_PRODUCT FD ON FO.PRODUCT_ID = FD.PRODUCT_IDWHERE FO.PRODUCE_DATE BETWEEN '2022-05-01' AND '2022-05-31'GROUP BY FD.PRODUCT_ID, FD.PRODUCT_NAMEORDER BY TOTAL_SALES DESC, FD.PRODUCT_ID ASC; ✅ JOIN … ONJOIN FOOD_PRODUCT FD ON FO.PRODUCT_ID =..