13. SQL - 내가 틀린 것들 (#3)

Jason·2026년 1월 12일

SQL

목록 보기
13/47

SQL 내가 틀린 것들 #3 — 복습하며 잡은 실수들

💡 같은 유형 4문제 연속 복습하면서 발견한 것들.
70점 → 99점까지 성장했다!


🟡 1. HAVING에 집계함수 빼먹음

내가 쓴 거 (틀림)

HAVING o.amount >= 300000

정답

HAVING SUM(o.amount) >= 300000

교훈

HAVING은 그룹 조건이니까 집계함수 써야 함!

o.amount >= 300000SUM(o.amount) >= 300000
o.order_id >= 3COUNT(o.order_id) >= 3

🟡 2. HAVING에 별칭 사용 (BigQuery 주의!)

내가 쓴 거 (위험)

SELECT COUNT(o.order_id) AS order_cnt
...
HAVING order_cnt >= 3

정답

SELECT COUNT(o.order_id) AS order_cnt
...
HAVING COUNT(o.order_id) >= 3

교훈

MySQL에서는 별칭 되긴 하지만, BigQuery/PostgreSQL에서는 안 됨!

SQL 실행 순서:

1. FROM
2. WHERE
3. GROUP BY
4. HAVING    ← SELECT 전! 별칭 아직 없음
5. SELECT   ← 별칭 생성
6. ORDER BY ← SELECT 후! 별칭 있음

채널톡이 BigQuery 쓰니까 집계함수 직접 쓰는 습관 들이자!


🟡 3. YEAR() 비교할 때 따옴표

내가 쓴 거 (애매)

WHERE YEAR(signup_date) = '2024'

정답

WHERE YEAR(signup_date) = 2024

교훈

YEAR()는 숫자 반환! 따옴표 없이!

MySQL에서는 작동하긴 하지만, 습관상 타입 맞추자.


🔴 4. HAVING 조건 여러 개 — 쉼표 vs AND

내가 쓴 거 (틀림)

HAVING COUNT(tx_id) >= 5, SUM(amount) >= 500000

정답

HAVING COUNT(tx_id) >= 5 AND SUM(amount) >= 500000

교훈

조건 여러 개는 AND로 연결! 쉼표 아님!

-- WHERE도 마찬가지
WHERE a >= 1 AND b < 10   -- ✅
WHERE a >= 1, b < 10      -- ❌

🟢 5. 오타 주의

내가 쓴 거

SUM(0.amount)  -- 숫자 0

정답

SUM(o.amount)  -- 알파벳 o

교훈

급하게 풀면 오타 남. 제출 전에 한 번 더 보자!


📈 오늘 성장 기록

회차점수실수
1회차70점JOIN 문법, 날짜 비교, GROUP BY
복습 190점오타, HAVING 집계함수
복습 295점HAVING 별칭
복습 398점YEAR() 따옴표
복습 499점쉼표 vs AND

70점 → 99점! 같은 유형 반복하니까 확실히 늘었다.


📋 현재 상태

항목상태
JOIN 문법
날짜 범위 (AND)
GROUP BY 컬럼
LEFT JOIN + IS NULL
HAVING 집계함수
HAVING vs ORDER BY 별칭
ROW_NUMBER🟡 복습 필요
LAG🟢

💪 내일 목표

  • ROW_NUMBER 복습 문제 풀기
  • 날짜 함수 문제 더 풀어보기

📝 같은 유형 반복이 답이다.
70점에서 99점까지, 4문제면 충분했다!

profile
Data Analyst | Thoughts Become Things. 할 수 있다고 생각하면 할 수 있다. 할 수 없다고 생각하면 할 수 없다. | www.linkedin.com/in/명수-제-7ab843200

0개의 댓글