본문 바로가기

Language/MySQL20

LEAD 함수, LAG 함수 LEAD 함수, LAG 함수 1. LEAD() LEAD(): 현재 행을 기준으로 다음 행의 값 반환 LEAD(expression, offset, default) OVER (partition_clause ORDER BY order_clause) expression: 가져올 값의 열이나 식 offset(선택적): 가져올 행의 상대적인 위치, 기본값=1로 다음 행을 의미 (2인 경우 2번째 다음 행을 의미) default(선택적): LEAD 함수가 더 이상 행이 없는 경우 반환할 기본값 (미지정 시 NULL 반환) partition_clause(선택적): 데이터를 파티션으로 나누는 데 사용 ('PARTITION BY'를 추가하여 category별 계산) order_clause: 데이터 정렬 지정에 사용 # [.. 2024. 2. 4.
EXISTS 연산자 EXISTS 연산자 EXISTS 연산자는 서브쿼리의 결과가 비어 있지 않은 경우에만 true를 반환하고, 그렇지 않으면 false를 반환하는 논리 연산자입니다. 이 연산자는 외부 쿼리의 각 행에 대해 서브쿼리를 실행하고, 서브쿼리의 결과가 적어도 하나 이상의 행을 반환하는지 여부를 확인합니다. 이러한 특징으로 인해 EXISTS 연산자는 조건이 충족되는지 여부에 따라 결과를 제어할 수 있습니다. EXISTS 연산자는 일반적으로 SELECT 문이나 WHERE 절에서 사용됩니다. 외부 쿼리의 각 행에 대해 서브쿼리가 실행되며, 서브쿼리의 결과가 비어 있지 않으면 외부 쿼리에 해당 행이 포함됩니다. 서브쿼리의 결과가 비어 있으면 외부 쿼리에 해당 행은 포함되지 않습니다. 'Nike' 브랜드 유무 확인 SELEC.. 2024. 2. 2.
이동 평균, 누적 합계 이동 평균, 누적 합계 MySQL에서 이동 평균과 누적 합계를 구하는 쿼리를 알아보자 1. 이동 평균 각 행의 값과 이전 n개, 이후 n개의 행 값을 포함하여 (2*n + 1)일 이동 평균을 계산 ROWS BETWEEN n PRECEDING AND n FOLLOWING # 테이블(my_table) +-------------+--------------+ | date_column | value_column | +-------------+--------------+ | 2024-01-01 | 10 | | 2024-01-02 | 15 | | 2024-01-03 | 20 | | 2024-01-04 | 25 | | 2024-01-05 | 30 | +-------------+--------------+ # [3일 이.. 2024. 1. 31.
SQL 순위 함수 SQL 순위 함수 1. ROW_NUMBER() 각 행에 대해 고유한 번호를 할당, 항상 1씩 증가하는 순위를 할당 SELECT value, ROW_NUMBER() OVER (ORDER BY value DESC) AS row_number FROM example_data; # 결과 +-------+------------+ | value | row_number | +-------+------------+ | 40 | 1 | | 30 | 2 | | 20 | 3 | | 20 | 4 | | 10 | 5 | +-------+------------+ 2. RANK() 각 행에 대해 순위를 할당, 동일한 값에 동일 순위를 부여하고, 그 다음 순위는 해당 값의 개수만큼 건너뛰게 됩니다. SELECT value, RANK(.. 2024. 1. 28.
SQL 집계 함수 SQL 집계 함수 1. SUM() department별 총합을 반환 SELECT department, SUM(salary) AS total_salary FROM employees GROUP BY department; # 결과 +------------+--------------+ | department | total_salary | +------------+--------------+ | HR | 150000 | | IT | 200000 | | Sales | 250000 | +------------+--------------+ 2. AVG() department별 평균을 반환 SELECT department, AVG(salary) AS avg_salary FROM employees GROUP BY depa.. 2024. 1. 26.
SQL 일반 함수 SQL 일반 함수 1. IFNULL 함수 IFNULL(value1, a) value1이 NULL이면 지정 값 a를 반환하고, 그렇지 않으면 value1을 반환 SELECT IFNULL(NULL, '재고 소진') #결과: '재고 소진' SELECT IFNULL(15, '재고 소진') # 결과: 15 2. COALESCE 함수 COALESCE(value1, value2, ..., valuen) 주어진 값들 중에서 첫 번째로 NULL이 아닌 값을 반환 모든 값이 NULL일 경우 NULL 반환 SELECT COALESCE(NULL, 'Value1', 'Value2') # 결과: Value1 SELECT COALESCE(NULL, NULL, 'Value3') # 결과: Value3 3. NULLIF 함수 NULL.. 2024. 1. 22.
SQL 날짜형 함수 SQL 날짜형 함수 1. CURDATE() / CURTIME() CURDATE(): 현재 날짜 반환 (=CURRENT_DATE()) CURTIME(): 현재 시간 반환 (=CURRENT_TIME()) # [CURDATE] SELECT CURDATE() # 결과 2024-01-21 # [CURTIME] SELECT CURTIME() # 결과 20:17:45 2. CURRENT_TIMESTAMP() / NOW() 현재 날짜+시간 반환 # [CURRENT_TIMESTAMP] SELECT CURRENT_TIMESTAMP() # 결과 2024-01-21 20:17:45 # [NOW] SELECT NOW() # 결과 2024-01-21 20:17:45 3. YEAR() / QUARTER() / MONTH() / W.. 2024. 1. 21.
SQL 문자형 함수 SQL 문자형 함수 1. LOWER('문자열') / UPPER('문자열') LOWER: 소문자 반환 UPPER: 대문자 반환 # [LOWER] SELECT LOWER('ABCDE') # 결과 'abcde' # [UPPER] SELECT UPPER('abcde') # 결과 'ABCDE' 2. LEFT('문자열', n) / RIGHT('문자열', n) LEFT: 왼쪽부터 지정한 수(n)만큼 문자 반환 RIGHT: 오른쪽부터 지정한 수(n)만큼 문자 반환 # [LEFT] SELECT LEFT('Hello My Friends', 5) # 결과 'Hello' # [RIGHT] SELECT RIGHT('Hello My Friends', 7) # 결과 'Friends' 3. SUBSTR('문자열', m, n) 문자열.. 2024. 1. 20.
SQL 숫자형 함수 SQL 숫자형 함수 1. ABS(n) n의 절대값 SELECT ABS(-10) # 결과 10 2. ROUND(n, m) m 기준으로 반올림 SELECT ROUND(15.7862, 2) # 결과 15.79 3. TRUNCATE(n, m) m 기준으로 내림 SELECT TRUNCATE(15.7862, 2) # 결과 15.78 4. CEIL(n) / FLOOR(n) CEIL(n): 크거나 같은 최소 정수 FLOOR(n): 작거나 같은 최소 정수 SELECT CEIL(9.25) # 결과 10 SELECT FLOOR(9.75) # 결과 9 5. POWER(n, m) n의 m 거듭 제곱 SELECT POWER(2, 3) # 결과 8 6. SQRT(n) n의 제곱근(루트) SELECT SQRT(25) # 결과 5 7.. 2024. 1. 19.