비전공자도 당당하게 통과하는 프로그래머스 코딩테스트 SQL 매우 쉬운 방법
SQL 코딩테스트를 준비하면서 막막함을 느끼는 초보자나 비전공자들을 위해 가장 효율적이고 단순한 합격 전략을 정리했습니다. 복잡한 이론보다는 실전에서 바로 점수를 따낼 수 있는 핵심 패턴 위주로 구성했습니다.
목차
- SQL 코딩테스트가 쉬워지는 마인드셋
- 반드시 암기해야 할 필수 구문 TOP 5
- 문제 유형별 패턴 공략법
- 프로그래머스 환경 200% 활용하기
- 실수를 줄이는 셀프 체크리스트
SQL 코딩테스트가 쉬워지는 마인드셋
- SQL은 프로그래밍 언어보다 자연어(영어)에 가깝습니다.
- 데이터를 ‘어떻게(How)’ 가져올지 고민하기보다, 어떤 데이터를 ‘무엇(What)’을 기준으로 뽑을지에 집중하세요.
- 프로그래머스 SQL 문제는 정형화되어 있으므로 패턴만 익히면 며칠 안에도 마스터가 가능합니다.
- 복잡한 알고리즘이 필요한 문제가 아니므로 문법의 정확도에만 신경 쓰면 됩니다.
반드시 암기해야 할 필수 구문 TOP 5
SQL의 90%는 다음 다섯 가지 구문의 조합으로 해결됩니다. 이 구조를 머릿속에 사진 찍듯 저장하세요.
- SELECT / FROM: 어떤 테이블에서 어떤 컬럼을 가져올 것인가
- SELECT * (전체 컬럼)
- SELECT 컬럼명 (특정 컬럼)
- WHERE: 특정 조건에 맞는 데이터만 필터링
- 비교 연산자: =, !=, <, >
- 범위 및 포함: BETWEEN, IN, LIKE
- GROUP BY / HAVING: 그룹화 및 그룹에 대한 조건
- GROUP BY는 주로 집계 함수(COUNT, SUM, AVG)와 함께 사용됩니다.
- HAVING은 GROUP BY 결과에 조건을 걸 때 사용합니다.
- ORDER BY: 결과 데이터 정렬
- ASC: 오름차순 (기본값, 생략 가능)
- DESC: 내림차순 (큰 값부터)
- JOIN: 두 개 이상의 테이블 연결
- INNER JOIN: 교집합 데이터
- LEFT JOIN: 왼쪽 테이블 기준 전체 데이터
문제 유형별 패턴 공략법
프로그래머스에 자주 출현하는 유형별로 “매우 쉬운 방법”을 적용해 봅니다.
1. 최댓값/최솟값 구하기
- 가장 비싼 상품이나 가장 먼저 들어온 동물을 찾을 때 사용합니다.
- 방법 A: ORDER BY로 정렬한 뒤 LIMIT 1을 사용하여 최상단 행 하나만 추출합니다.
- 방법 B: MAX() 또는 MIN() 함수를 SELECT절에 사용합니다.
2. null 처리하기
- 데이터가 비어 있는 경우를 처리하는 문제입니다.
- IFNULL(컬럼명, ‘대체값’): 컬럼이 NULL이면 대체값으로 표시합니다.
- WHERE 컬럼명 IS NULL 또는 IS NOT NULL을 사용해 필터링합니다.
3. 날짜 데이터 가공
- 특정 연도, 월, 시간대별 데이터를 추출하는 문제입니다.
- YEAR(), MONTH(), DAY() 함수로 연월일을 분리합니다.
- HOUR() 함수는 시간대별 통계를 낼 때 GROUP BY와 자주 쓰입니다.
- DATE_FORMAT(날짜, ‘%Y-%m-%d’) 형식을 익혀두면 출력 형식을 맞추기 쉽습니다.
4. 중복 제거 및 개수 세기
- DISTINCT: 중복된 값을 하나만 남기고 제거할 때 사용합니다.
- COUNT(): 데이터의 개수를 셀 때 사용하며, COUNT(DISTINCT 컬럼명) 형태로 중복 제거 후 개수 세기가 가능합니다.
프로그래머스 환경 200% 활용하기
플랫폼의 특성을 이해하면 풀이 시간이 단축됩니다.
- 실행 결과 확인: 코드를 작성할 때마다 ‘코드 실행’ 버튼을 눌러 중간 결과물을 확인하세요.
- 에러 메시지 읽기: 문법 오류가 발생하면 에러 메시지에서 가리키는 라인을 먼저 확인합니다.
- 정렬 조건 확인: 문제 마지막에 ‘이름 순으로 정렬하세요’ 같은 조건이 있는지 반드시 확인해야 합니다. 정렬 하나로 정답 여부가 갈립니다.
- 대소문자 구분: SQL 구문 자체는 대소문자를 구분하지 않지만, 가독성을 위해 예약어(SELECT, FROM 등)는 대문자로 쓰는 습관을 들이면 좋습니다.
실수를 줄이는 셀프 체크리스트
제출 전 다음 사항을 점검하면 정답률이 비약적으로 상승합니다.
- SELECT절에 문제에서 요구한 모든 컬럼을 포함했는가?
- 컬럼명에 별칭(AS)이 필요한 경우 문제와 동일하게 지정했는가?
- 날짜 형식이나 소수점 처리 등 출력 형식이 예시와 일치하는가?
- JOIN을 사용할 때 공통된 키 값을 정확히 매칭했는가?
- GROUP BY를 썼을 때 SELECT절에 집계 함수 이외의 컬럼이 누락되지 않았는가?
- 오름차순(ASC)과 내림차순(DESC)을 반대로 적용하지 않았는가?
프로그래머스 코딩테스트 SQL은 기출 문제를 반복해서 푸는 것이 가장 빠른 합격의 길입니다. 위에서 설명한 기초 문법과 패턴을 숙지한 상태에서 ‘레벨 1’부터 차근차근 풀어나간다면 비전공자라도 충분히 고득점을 얻을 수 있습니다. 반복되는 구문을 손에 익히는 과정이 핵심임을 잊지 마세요.