[solvesql] Lv1 문제 풀이 및 함수 정리

2025. 8. 7. 14:28·코딩 테스트/02. SQL

 

구분  이름/기호 설명 예시(a=10, b=3) 결과
함수 MOD(a, b) a를 b로 나눈 나머지를 반환 MOD(10, 3) 1
연산자 a % b a를 b로 나눈 나머지를 반환 (MOD와 동일한 역할) 10 % 3 1
함수 VAR_SAMP(col) 표본 분산을 계산하는 집계 함수 (나머지와는 관련 없음) VAR_SAMP(값들) 값에 따라 다름

 

✅ 문자열 관련 함수 정리 요약표

추출 LEFT, RIGHT, SUBSTR, SUBSTRING
위치 찾기 INSTR, LOCATE
나누기/치환 SPLIT_PART, REPLACE
길이/공백 LENGTH, CHAR_LENGTH, TRIM, LTRIM, RTRIM
형변환 CAST, STR

1. 부분 문자열 추출

LEFT(str, n) 왼쪽에서 n글자 추출 LEFT('abcdef', 3) 'abc'
RIGHT(str, n) 오른쪽에서 n글자 추출 RIGHT('abcdef', 2) 'ef'
SUBSTR(str, start, len) 시작 위치부터 len만큼 추출 SUBSTR('abcdef', 2, 3) 'bcd'
SUBSTRING(str, start, len) SUBSTR과 동일 (DBMS 따라 이름만 다름) SUBSTRING('abcdef', 2, 3) 'bcd'
 

2. 특정 위치 기준 추출

INSTR(str, sub) 특정 문자열의 위치 찾기 INSTR('applepie', 'p') 2
LOCATE(sub, str) INSTR과 비슷 (MySQL) LOCATE('p', 'applepie') 2
 

🔎 활용: 특정 문자 기준으로 SUBSTR과 함께 사용해서 "앞부분" 또는 "뒷부분" 자르기


3. 문자 나누기 / 치환

SPLIT_PART(str, delim, index) 구분자로 나눈 n번째 조각 (PostgreSQL) SPLIT_PART('a,b,c', ',', 2) 'b'
REPLACE(str, from, to) 문자열 치환 REPLACE('hello', 'e', 'a') 'hallo'
 

🔸 MySQL에서는 SPLIT_PART 대신 JSON tricks이나 SUBSTRING + LOCATE 조합 사용해야 함


4. 문자열 포맷팅/길이 관련

CHAR_LENGTH(str) 또는 LENGTH(str) 문자열 길이 CHAR_LENGTH('abc') 3
TRIM(str) 앞뒤 공백 제거 TRIM(' hi ') 'hi'
LTRIM(str) 왼쪽 공백 제거 LTRIM(' hi') 'hi'
RTRIM(str) 오른쪽 공백 제거 RTRIM('hi ') 'hi'
 

5. 형변환 관련

CAST(expr AS CHAR) 문자열로 변환 CAST(123 AS CHAR) '123'
STR(num) 숫자를 문자열로 (SQL Server) STR(12.34, 5, 2) '12.34'

 

6. WHERE 절에 집계함수 쓰고싶다면

SELECT *
FROM tips
WHERE total_bill > (SELECT AVG(total_bill) AS AVG_BILL FROM tips)

조건: 식사 금액이 테이블당 평균 식사 금액보다 더 많은 경우

 

집계 함수는 GROUP BY 없이 WHERE절에 직접 사용할 수 없습니다.

왜냐하면 WHERE절은 각 행을 기준으로 필터링하기 때문입니다

그래서 서브쿼리로 먼저 평균값을 구한 뒤에  각 행에 대해 비교를 하면 

문제에서 원하는 조건이 성립됩니다.

 

 

'코딩 테스트 > 02. SQL' 카테고리의 다른 글

[HackerRank] SQL Basic (easy)(1)  (4) 2025.08.12
[solvesql] Lv2 문제 풀이 및 함수 정리  (8) 2025.08.11
[프로그래머스]SQL쿼리테스트 Lv4(3)  (6) 2025.08.04
[프로그래머스]SQL쿼리테스트 Lv4(2)  (2) 2025.08.03
[프로그래머스]SQL 쿼리테스트 Lv4(1)  (1) 2025.08.01
'코딩 테스트/02. SQL' 카테고리의 다른 글
  • [HackerRank] SQL Basic (easy)(1)
  • [solvesql] Lv2 문제 풀이 및 함수 정리
  • [프로그래머스]SQL쿼리테스트 Lv4(3)
  • [프로그래머스]SQL쿼리테스트 Lv4(2)
Growth DA Log
Growth DA Log
Growth DA Log 님의 블로그 입니다.
  • Growth DA Log
    Growth DA Log님의 블로그
    Growth DA Log
  • 전체
    오늘
    어제
    • 분류 전체보기 (125)
      • TIS_COMPANY (6)
      • 코딩 테스트 (61)
        • 01. Python (3)
        • 02. SQL (58)
      • 데이터 분석 (53)
        • 01. BigQuery (9)
        • 02. GA4 (1)
        • 02-1. GA4를 더 잘 다루기 위한 마케팅 개.. (5)
        • 03. streamlit (5)
        • 04. Git (12)
        • 05. 데이터 엔지니어링 (3)
        • 06. 데이터 모델링 (11)
        • 07. Excel (0)
        • 08. Tableau (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    revert
    이행성
    SQL
    코테
    윈도우함수
    DENSE_RANK
    코드잇스프린트후기
    solvesql
    rank
    streamlit
    cross_join
    tableaubootcamp
    쿼리테스트
    프로그래머스
    AARRR
    코딩테스트
    tableau
    git
    ROW_NUMBER
    Reset
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
Growth DA Log
[solvesql] Lv1 문제 풀이 및 함수 정리
상단으로

티스토리툴바