본문 바로가기
🚀 Backend

[SQL] SELECT 관련 함수

by dev.py 2025. 2. 5.

집계 함수 (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