집계 함수 (Aggregate Functions)
- AVG(): 평균값 계산
- SUM(): 합계 구하기
- COUNT(): 전체 행 개수
- COUNT(*): 모든 행의 개수
- COUNT(컬럼명): NULL이 아닌 값의 개수
- MAX() / MIN(): 최대값과 최소값
- GROUP_CONCAT(): 문자열 합치기
- ROUND() / CEIL() / FLOOR(): 반올림, 올림, 내림 두번째 인자로 어느 자리까지 표현 정함
- TRUNCATE(): 지정한 자리수까지 버림
상위 N개 데이터 추출 (LIMIT)
- LIMIT N: 결과에서 상위 N개만 출력
날짜 다루기
# 날짜 범위 조회
WHERE JOINED BETWEEN '2021-01-01' AND '2021-12-31'
또는
WHERE YEAR(JOINED) = 2021
# 날짜 포맷 변경
DATE_FORMAT(HIRE_YMD, '%Y-%m-%d') AS HIRE_YMD
NULL 처리
- IS NULL / IS NOT NULL: NULL 값 여부 확인
- COALESCE(): 여러 값 중 NULL이 아닌 첫 번째 값 반환
- IFNULL(): 첫 번째 값이 NULL이면 두 번째 값 반환
문자열 검색 (LIKE)
- %: 어떤 문자열이든 상관없이 일치 (예: LIKE '%SQL%')
- _: 정확히 한 글자와 일치 (예: LIKE '강_도' → "강자도", "강수도" 등)
중복 제거 (DISTINCT)
- SELECT DISTINCT 컬럼: 중복된 값 제거 후 고유 값만 반환
조건 분기 (CASE WHEN)
CASE
WHEN 조건1 THEN 결과1
WHEN 조건2 THEN 결과2
ELSE 기본값
END AS 별칭
상위 퍼센트 구하기 (PERCENT_RANK)
SELECT PERCENT_RANK() OVER (ORDER BY 컬럼 ASC)
FROM 테이블
재귀 쿼리 (WITH RECURSION)
WITH RECURSIVE generations AS (
# 초기 조건
SELECT ID, PARENT_ID, 1 as GENERATION
FROM ECOLI_DATA
WHERE PARENT_ID IS NULL
UNION
# 재귀 : 덧붙이기
SELECT N.ID, N.PARENT_ID, G.GENERATION +1
FROM ECOLI_DATA N
JOIN generations G on G.ID = N.PARENT_ID
)
SELECT COUNT(GENERATION) AS COUNT, GENERATION
FROM generations as G
WHERE ID NOT IN
(SELECT PARENT_ID
FROM ECOLI_DATA
WHERE PARENT_ID IS NOT NULL
)
GROUP BY GENERATION
ORDER BY GENERATION
'🚀 Backend' 카테고리의 다른 글
[FastAPI] SQLModel (0) | 2025.03.14 |
---|---|
[FastAPI] Best Practices - Project Structure (0) | 2025.02.14 |
[Security] 스프링 시큐리티 (0) | 2024.02.27 |
[Spring Basic] 스프링 싱글톤 (0) | 2024.01.18 |
[Spring Basic] 스프링 컨테이너와 빈 (0) | 2024.01.18 |