SQL14 날짜 함수 - MySQL 날짜 함수 - 날짜/시간 데이터에서 원하는 값을 추출하거나, 변환해주는 함수 - 왜 사용하는 가?DATE, TIME, DATETIME, TIMESTAMP 등의 데이터형을 다루고, 이를 처리하기 위해 사용 - 날짜 함수의 종류함수설명NOW( )현재 날짜와 시간 반환 (DATETIME)CURDATE( )현재 날짜 반환 (DATE)CURTIME( )현재 시간 반환 (TIME)DATE( )DATETIME에서 날짜만 추출TIME( )DATETIME에서 시간만 추출YEAR( ) / MONTH( ) / DAY( )날짜에서 연도 / 월 / 일 추출 HOUR( ) / MINUTE( ) / SECOND( )시간에서 시, 분, 초 추출DATEDIFF( )두 날짜 간 차이 (일 단위)TIMESTAMPDIFF( )두 날짜 간 .. 2025. 8. 5. Common Table Expression (CTE) - MySQL CTE (공통 테이블 식) - 복잡한 쿼리를 가독성 좋고 재사용 가능하게 만들기 - 구조WITH cte_name AS ( SELECT ... FROM ... WHERE ...)SELECT *FROM cte_name - 왜 사용하는 가?복잡한 서브쿼리를 WITH절로 분리해서, 쿼리의 의도와 흐름을 명확하게 보여주어 가독성을 향상시킴하나의 CTE를 여러 번 JOIN 하거나 SELECT에 사용할 수 있어 코드의 중복을 줄여줌 - 재사용성 향상재귀 쿼리 작성 가능 -> 계층 구조나 경로 탐색 문제를 처리할 수 있음. 예를 들어 조직도, 친구의 친구 찾기 - 예시sales 테이블에서최근 30일 동안의 판매 데이터를 먼저 필터링하고,그 중에서 제품별 총 판매량이 1000 이상인 제품만 조회해보자WITH.. 2025. 8. 3. ROWS & RANGE (feat. Window Function) - MySQL ROWS & RANGE - 윈도우 함수의 범위 지정 방식저번에 윈도우 함수에 대해서 공부했다. 그러다 ROWS 와 RANGE에 대해 궁금해져서 오늘은 그걸 공부해보려고 한다. - ROWS vs RANGE 의 정의와 차이 - ROWS 와 RANGE의 차이 예시먼저 RANGE의 예시이다. 예시 테이블 :idsalespersonamount1A1002A1003A2004A300 -- 누적합 계산SELECT id, amount, SUM(amount) OVER ( ORDER BY amount RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) AS range_sumFROM sales 출력 결과 : idamountrange_sum110.. 2025. 8. 1. Window Function (윈도우 함수) - MySQL Window Function (윈도우 함수) - 집계 결과를 여러 행에 걸쳐 출력 - 왜 사용하는 가?GROUP BY 와 달리 모든 행을 유지하면서 행 단위로 누적합, 순위, 이전값 등 계산 가능즉, 모든 행과 집계정보를 함께 보고 싶을 때 사용 - Window Function 의 종류 - 구조() OVER ( # 윈도우 함수임을 나타내는 키워드 [PARTION BY ] # 데이터를 그룹으로 나눔 [ORDER BY ] # 순서 기준을 지정) - 예시 1. ROW_NUMBER( ) : 순위를 1부터 부여 (중복 시에도 무조건 증가) (동점이 있어도 1, 2, 3, 4)-- 각 유저별 최근 1건 주문 추출SELECT user_id, order_date, amount, ROW_NUMBER(.. 2025. 7. 29. Subquery (서브쿼리) - MySQL Subquery (서브쿼리) - 한 쿼리 내에 포함된 또 하나의 쿼리 - 왜 사용하는 가?복잡한 문제를 잘게 나누고, 중간 결과를 활용하기 위해더 읽기 쉽고 간결하게 표현하기 위해 - 서브쿼리의 종류 1. 스칼라 서브쿼리 (Scalar Subquery)단 하나의 값(스칼라 값)을 반환하는 서브쿼리보통 SELECT, WHERE, HAVING, SET, CASE 등의 절에서 사용됨주로 특정 기준값(평균, 최대, 최소 등)에 따라 비교할 때 사용- 예시-- 평균 가격보다 높은 상품 찾기SELECT product_name, priceFROM productsWHERE price > (SELECT AVG(price) FROM products) 2. 인라인 뷰 (Inline View) - FROM절 서브쿼리FROM.. 2025. 7. 27. 집계 함수 & GROUP BY & HAVING - MySQL 집계 함수 - 여러 행(row)의 값을 하나의 결과값으로 요약해주는 함수 - 왜 사용하는 가?수많은 데이터를 하나의 숫자나 지표로 축약하여 보여주기 위해 - 집계 함수의 종류 - 예시 아래와 같은 테이블이 있다고 가정하고 각 집계 함수별로 예시를 확인해 보자.+----------+---------+--------+| order_id | user_id | amount |+----------+---------+--------+| 101 | 1 | 100.00 || 102 | 1 | 150.00 || 103 | 2 | 200.00 || 104 | 3 | NULL |+----------+---------+--------+ 1. .. 2025. 7. 25. 이전 1 2 3 다음