SQL 쿼리 작성하고 한 줄씩 설명받는 프롬프트

기획·마케팅 담당자가 개발자에게 부탁하지 않고 직접 데이터를 뽑고 싶을 때, 원하는 결과를 말로 설명해 정확한 SQL을 받는 프롬프트입니다.

#SQL#쿼리 작성#MySQL#데이터 추출

이럴 때 쓰세요

  • 지역별·월별 매출처럼 테이블 두 개를 연결해야 하는 집계가 필요할 때
  • 사내 BI 도구나 DB 조회 화면에서 직접 쿼리를 써야 할 때
  • 다른 사람이 작성한 SQL이 무슨 뜻인지 이해하고 고쳐 쓰고 싶을 때

광고

① 빈칸 채우기

입력한 내용은 이 브라우저에만 저장되고 서버로 보내지 않습니다. 회사 기밀·개인정보는 가명으로 바꿔 넣으세요.

② 완성된 프롬프트

빈칸 3개
당신은 비개발자에게 SQL을 가르치는 시니어 데이터 엔지니어입니다.
아래 조건에 맞는 SQL 쿼리를 작성해 주세요.

[환경]
- DB 종류: [DB 종류]

[테이블 구조]
[테이블 구조]

[뽑고 싶은 결과]
[뽑고 싶은 결과]

[추가 조건]
(없음)

[요구사항]
1. 위 DB 문법에 맞게 쓰고, DB 종류마다 다르게 써야 하는 부분(날짜 함수, LIMIT/TOP 등)이 있으면 짚어 주세요.
2. 테이블에는 짧은 별칭을 붙이고, 결과 열 이름은 알아보기 쉬운 영문 별칭으로 지정해 주세요.
3. 날짜 범위는 시간이 포함된 값도 빠지지 않도록 '>= 시작일 AND < 다음 날' 방식으로 써 주세요.
4. 데이터를 수정·삭제하는 문장(UPDATE, DELETE, DROP)은 쓰지 말고 조회(SELECT)만 써 주세요.
5. 쿼리 아래에 줄별로 무슨 일을 하는지 쉬운 한국어로 설명해 주세요.
6. 결과가 맞는지 확인할 수 있는 간단한 검증 쿼리를 하나 덧붙여 주세요.

AI 결과 예시

예시 값을 넣어 실행했을 때 기대할 수 있는 결과입니다. 표현은 AI 서비스와 실행할 때마다 조금씩 달라집니다.

[쿼리] SELECT c.region AS region, COUNT(*) AS order_count, SUM(o.amount) AS total_amount FROM orders AS o JOIN customers AS c ON c.customer_id = o.customer_id WHERE o.status = 'completed' AND o.order_date >= '2026-01-01' AND o.order_date < '2026-04-01' GROUP BY c.region HAVING SUM(o.amount) >= 1000000 ORDER BY total_amount DESC; [줄별 설명] 1. SELECT: 지역, 주문 건수, 매출 합계를 보여 줍니다. 2. FROM ~ JOIN: 주문 테이블과 고객 테이블을 고객 ID로 연결합니다. 3. WHERE: 완료된 주문 중 1월 1일 0시부터 4월 1일 0시 전까지만 남깁니다. 3월 31일 오후 주문도 빠지지 않습니다. 4. GROUP BY: 지역별로 묶어 집계합니다. 5. HAVING: 묶은 뒤 합계가 100만 원 이상인 지역만 남깁니다. 집계 결과 조건은 WHERE가 아니라 HAVING에 씁니다. 6. ORDER BY: 매출 합계가 큰 순서로 정렬합니다. [검증 쿼리] 지역 구분 없이 전체 합계를 구해 위 결과 합과 비교하세요(HAVING으로 빠진 지역 차이는 감안). SELECT COUNT(*), SUM(amount) FROM orders WHERE status = 'completed' AND order_date >= '2026-01-01' AND order_date < '2026-04-01'; [참고] PostgreSQL에서도 그대로 동작합니다. SQL Server는 상위 N개를 뽑을 때 LIMIT 대신 TOP을 씁니다.

이 프롬프트가 잘 통하는 이유

  • DB 종류 명시: 날짜 함수·LIMIT 문법이 DB마다 달라 생기는 문법 오류를 줄입니다.
  • 날짜 범위 규칙: BETWEEN으로 마지막 날 오후 데이터가 빠지는 흔한 집계 실수를 처음부터 막습니다.
  • SELECT 전용 제한: 실수로 운영 데이터를 바꾸거나 지우는 위험한 쿼리를 받지 않게 합니다.
  • 검증 쿼리 요구: 결과를 그대로 보고하기 전에 숫자를 맞춰 볼 수 있는 근거를 함께 받습니다.

결과를 다듬는 후속 프롬프트

첫 결과를 받은 같은 대화창에 이어서 보내세요.

  • 월별로 쪼개기

    같은 결과를 지역 × 월 단위로 나눠 보여 주는 쿼리로 바꿔 줘. MySQL 날짜 함수로.

  • 주문 없는 지역도

    주문이 0건인 지역도 0으로 나오게 LEFT JOIN을 써서 바꿔 주고, 왜 그렇게 바꿨는지 설명해 줘.

  • 성능 점검

    이 쿼리가 느릴 때 확인할 인덱스와 EXPLAIN 보는 법을 초보자 수준으로 알려 줘.

  • 쿼리 해석

    아래 SQL이 무슨 결과를 내는지 줄별로 쉬운 말로 설명해 줘. (여기에 SQL 붙여 넣기)

쓰기 전에 확인할 점

  • 운영 DB에 바로 실행하기보다 조회 전용 계정이나 복제 DB에서 먼저 실행하세요. 큰 테이블 전체를 훑는 쿼리는 서비스 속도에 영향을 줄 수 있습니다.
  • 고객 이름·연락처 같은 개인정보 열은 꼭 필요할 때만 SELECT에 넣고, 결과 파일 공유 범위에 주의하세요.
  • status 값이 실제로 completed인지 COMPLETE인지 등 표기는 SELECT DISTINCT status로 먼저 확인하세요. 값이 다르면 결과가 0건이 됩니다.
빈칸 표시가 있는 원본 프롬프트 보기
당신은 비개발자에게 SQL을 가르치는 시니어 데이터 엔지니어입니다.
아래 조건에 맞는 SQL 쿼리를 작성해 주세요.

[환경]
- DB 종류: {{db}}

[테이블 구조]
{{tables}}

[뽑고 싶은 결과]
{{goal}}

[추가 조건]
{{extra}}

[요구사항]
1. 위 DB 문법에 맞게 쓰고, DB 종류마다 다르게 써야 하는 부분(날짜 함수, LIMIT/TOP 등)이 있으면 짚어 주세요.
2. 테이블에는 짧은 별칭을 붙이고, 결과 열 이름은 알아보기 쉬운 영문 별칭으로 지정해 주세요.
3. 날짜 범위는 시간이 포함된 값도 빠지지 않도록 '>= 시작일 AND < 다음 날' 방식으로 써 주세요.
4. 데이터를 수정·삭제하는 문장(UPDATE, DELETE, DROP)은 쓰지 말고 조회(SELECT)만 써 주세요.
5. 쿼리 아래에 줄별로 무슨 일을 하는지 쉬운 한국어로 설명해 주세요.
6. 결과가 맞는지 확인할 수 있는 간단한 검증 쿼리를 하나 덧붙여 주세요.

광고

함께 쓰면 좋은 프롬프트

엑셀·코딩

원하는 결과만 설명하면 엑셀 함수 만들어 주는 프롬프트

SUMIFS·INDEX/MATCH처럼 조건이 여러 개인 수식을 직접 짜기 어려울 때, 표 구조와 원하는 결과만 적으면 정확한 수식과 설명을 받는 프롬프트입니다.

엑셀·코딩

엑셀 #N/A·#VALUE! 오류 원인 찾고 해결하는 프롬프트

수식은 맞는 것 같은데 오류가 날 때, 수식과 데이터 상태를 알려 주면 원인 후보와 점검 순서, 수정 수식을 함께 받는 프롬프트입니다.

엑셀·코딩

엑셀 조건부 서식·지저분한 데이터 정리 방법 프롬프트

여러 사람이 입력해 형식이 제각각인 표를 정리하고, 눈에 띄어야 할 행을 조건부 서식으로 강조하는 방법을 순서대로 받는 프롬프트입니다.

엑셀·코딩

엑셀 피벗 테이블로 매출 요약표 만드는 법 프롬프트

수천 행짜리 매출·지출 데이터를 지역별·월별 요약표로 만들고 싶을 때, 피벗 테이블을 어떻게 구성하면 되는지 단계별로 받는 프롬프트입니다.

엑셀·코딩

엑셀 반복 작업 자동화 VBA 매크로 만드는 프롬프트

같은 클릭을 매일 반복하는 엑셀 작업을 버튼 하나로 끝내고 싶을 때, 작업 내용을 설명해 VBA 매크로 코드를 받는 프롬프트입니다.

엑셀·코딩

구글 시트 QUERY·IMPORTRANGE 함수 만들어 주는 프롬프트

팀원이 각자 관리하는 구글 시트에서 필요한 데이터만 골라 내 시트에 자동으로 모으고 싶을 때, 바로 쓸 수 있는 QUERY 수식을 받는 프롬프트입니다.

등록 2026-10-01 · 오픈프롬프트 편집팀이 직접 쓰고 시험한 프롬프트입니다. AI 답변에는 틀린 내용이 섞일 수 있으니 숫자·사실·법률 관련 내용은 반드시 확인하세요. AI 답변 확인하는 법