Skip to main content
Choorai

직접 실행하며 배우는 SQL · B01~B03

표를 보고, 작은 SQL부터

무료 · 로그인과 API 키 없이 이 브라우저에서 실행합니다. 답안을 외부 채점 서버로 보내지 않습니다.

기존 B01/B02 학습 진행표와 별도의 연습 기록입니다. 힌트·예시 보기에는 감점이 없고, 원하는 곳에서 쉬었다 이어가도 됩니다.

SQL 실행 통과 0/25서술 자기 점검 0/4

이 브라우저에만 저장합니다.

B01의 전체 목표와 데이터 약속

먼저 표에서 한 행의 뜻을 살펴보고, 문제 바로 앞의 짧은 설명을 읽은 뒤 연습해 봅니다. 처음 보는 용어를 지금 모두 외울 필요는 없습니다.

막히면 힌트를 보거나 작은 SQL 조각만 실행해도 괜찮습니다. 원하는 곳에서 쉬고 이어갈 수 있으며, 이론 읽기와 작은 연습은 공식 문제 수나 완료 조건을 늘리지 않습니다.

테이블의 한 행이 무엇을 뜻하는지 살펴보고, 조회·조건·중복 제거·집계를 차근차근 연습합니다.

기존 B01 문제 14개를 그대로 담았습니다. 예전에 끝냈더라도 답안을 다시 실행해 결과를 확인할 수 있습니다.

GROUP BY는 선택한 열의 값이 같은 행들을 한 그룹으로 묶습니다. 예를 들어 GROUP BY user_id이면 사용자마다 결과 한 행이 되고, COUNT(DISTINCT event_id)는 그 사용자 그룹 안의 고유 이벤트 수를 셉니다. 묶는 기준과 세는 대상은 서로 다를 수 있습니다.

그룹 결과에서는 그룹 기준 열과 COUNT·SUM 같은 집계 결과를 출력하는 것이 기본입니다. GROUP BY user_id 뒤에 집계하지 않은 event_name을 그대로 선택하면 어느 이벤트 종류를 뜻하는지 정해지지 않습니다. SQLite는 이런 비집계 열을 허용할 수 있지만, 실행된다고 의미가 올바른 답은 아닙니다. GROUP BY는 출력 순서를 보장하지 않으며 정렬은 ORDER BY로 따로 지정합니다.

B01-Q01 · SQL 실행 검증

테이블 전체 살펴보기

먼저 읽기 · 처음 만나는 표와 SELECT

테이블은 이름이 붙은 표입니다. events에서 한 행은 수집된 기록 1건이고, 열은 기록의 속성입니다. event_id는 논리 이벤트 ID, user_id는 사용자 ID, event_name은 종류입니다. e02가 두 번 보이는 것은 같은 이벤트가 재전송되어 원시 행이 두 개라는 뜻입니다.

SELECT는 보여 줄 열을, FROM은 읽을 표를 고릅니다. SELECT *의 별표는 모든 열입니다. SQL 끝의 세미콜론은 문장의 끝을 표시합니다. 줄바꿈은 읽기 편하도록 써도 됩니다. SQL 키워드는 대소문자를 바꿔도 되지만 표 이름·열 이름은 스키마에서 확인하세요. 이번 조회는 원본 표를 수정하지 않습니다.

SELECT는 중복을 자동으로 없애지 않습니다. 지금은 행을 그대로 관찰하는 연습입니다. 결과의 행 순서는 ORDER BY를 지정하기 전까지 보장되지 않습니다.

이번 문제

events의 모든 컬럼과 모든 행을 조회하세요. 중복 행도 그대로 둡니다.

조회 한 문장 · 3초 · 300행 · 입력 12,000자 · 셀 5,000자. 별칭·행 순서는 무시하고 열 위치·값·자료형·중복 수를 비교합니다. 정렬은 읽기 편하게 연습해 보세요.

필요하면 힌트나 예시 답을 펼쳐 보세요. 보고 따라 실행하는 것도 연습이에요.

예시 답과 해설 · 보고 연습해도 괜찮아요
SELECT * FROM events;

SELECT는 컬럼, FROM은 테이블을 정합니다. 같은 내용의 행도 원본에 있으면 그대로 나옵니다.

원본 v3의 B01~B03 문제를 유지하고 설명·추가 검증을 보완한 제안본입니다. SQL은 SQLite를 쓰며 기존 공식 학습 진행표를 수정하지 않습니다. SQL.js 라이선스

Last updated: October 7, 2026 · Version: v0.0.1

Send Feedback

Opens a new issue page with your message.

Open GitHub Issue