어떻게 하면 SQL 쿼리를 잘 작성하고 오류를 디버깅 할까?

2025. 1. 17. 13:15 · DBMS/BigQuery

 


해당 내용은 초보자를 위한 BigQuery(SQL) 입문 강의를 기반으로 작성되었습니다.


1. SQL 쿼리 작성하는 흐름

흐름 함께 생각해야 할 것 내용
지표 고민 문제 정의 어떠한 문제를 해결하기 위해 해당 데이터가 필요한가?
지표 구체화 1. 문제의 요구 조건을 파악할 수 있는가?
2. 어떤 값을 뽑아야 하는가?
- 추상적이지 않고, 구체적인 지표 명시해야하며, 지표를 표시할때 분자와 분모를 같이 표시하면 좋다.
- 이름을 구체적으로 작성해야 추상적이지 않고, 정의를 확실하게 파악할 수 있다.
 지표 탐색 유사한 문제를 해결한 케이스가 있나 확인 케이스가 있는 경우
- 위키나, 문서가 있다면 해당 문서를 보면서 어떤 지표를 사용했는지
- 그 지표를 추출하기 위해 어던 쿼리를 사용했는지에 대한 쿼리 리뷰 진행
- 웬만하면 있는 쿼리 활용 -> 효율적

케이스가 없는 경우
- 구글에 검색해서 어떤 특정 도메인의 메트릭을 추천했는지
- 생성형 AI 활용
- 쿼리 작성
쿼리 작성 사용하는 테이블 갯수 확인
- 1개인 경우, 그대로 활용
- 2개 이상인 겨웅, 테이블 연결 방법 고민 (JOIN)
- 데이터가 있는 테이블(ERD) 찾기
- 테이블 명세나 컬럼에 대한 정의가 정리되어 있는 문서 참고

(원하는 결과가 나오면)
데이터 정합성 확인
예상한 결과와 동일한지 확인  
쿼리 가독성 나중을 위해 깔끔하게 쿼리 작성 ex) 스타일 가이드
쿼리 저장   쿼리는 재사용되므로 문서로 저장

쿼리 작성 템플릿

쿼리 작성 템플릿
1. 쿼리를 작성하는 목표, 확인할 지표 - 어떤 지표를 보고 싶은지에 대한 정의를 작성한다.
2. 쿼리 계산 방법 - 집계를 하는가
- 집계가 아니라 칼럼을 쓰면 되는 건 아닌가
- 어떻게 계산을 하는가 등...
3. 데이터의 기간 - 데이터가 많을 수록 비용 발생, 속도 저하와 같은 현상이 발생하기 때문에 일부 부분만 쪼개서 데이터를 보고 정합성이 맞으면 데이터를 늘려서 다시 확인하는 방식으로 진행이 된다. 그렇기 때문에 데이터 기간을 항상 명시해야 한다.
4. 사용할 테이블  
5. Join KEY - 두 개 이상의 테이블을 연결할 때, join key를 무엇으로 잡을지
6. 데이터 특징 - 어떤 컬럼은 어떤 값을 가지고 있는지
- 어떤 특징이 있는지
7.

SELECT

FROM
WHERE
기본이 되는 부분이기 때문에 자동 완성되도록 템플릿으로 사용한다.

생산성 도구 :  템플릿 쉽게 사용하기

생산성 도구 ESPANSO (https://espanso.org)

 

트리거에 저장된 단어를 인식하면 저장되어 있는 템플릿 혹은 오늘 날짜 등 자동으로 불러오는 기능이다. 

 

SQL 뿐만 아니라 일상생활에서도 많이 도움이 될 만한 친구이다.

 

 

설치 후 트리거 추가를 위해 해당 위치에 있는 match 파일을 열어야 한다.

# MAC
/Users/user/Library/Application Support/espanso/match

# Windows
C:/Users/user/AppData/Roaming/espanso/match

# 위치 확인 하기
espanso path

 

match 파일을 찾을 수 없다면 terminal을 열어서 폴더로 이동한 후 vscode를 열어주면 된다. 

# [MAC] 해당 폴더로 이동
cd /Users/사용자이름/Library/'Application Support'/espanso

# vscode 열기
code .

 

vscode를 열고 match 파일 내부에 trigger 추가하는 부분에 아래 코드를 붙여넣는다.

  - trigger: ":sql"
    replace: |
      # 쿼리를 작성하는 목표, 확인할 지표 : 
      # 쿼리 계산 방법 : 
      # 데이터의 기간 : 
      # 사용할 테이블 : 
      # Join KEY : 
      # 데이터 특징

      SELECT

      FROM
      WHERE

 

작동 영상


오류를 디버깅하는 방법

에러 명  뜻  해결 방법
Systax error  문법 오류 - 문법을 지키지 않아 생기는 오류

- Error Message를 보고 번역 또는 해석(번역기 돌리기)한 후 해결 방법 찾아보기
   1. 구글 검색
   2. ChatGPT 질문
   3. 지인 / 커뮤니티 질문 등...

 

[3-4] 7분 이후

728x90

'DBMS > BigQuery' 카테고리의 다른 글

5  (1) 2025.01.18
데이터를 어떻게 변환할 것인가  (1) 2025.01.17
데이터를 활용하고 확인하는 과정  (1) 2025.01.16
BigQuery 환경 설정 방법  (0) 2025.01.16
SQL 기초 지식 (BigQuery란?)  (1) 2025.01.16
'DBMS/BigQuery' 카테고리의 다른 글
  • 5
  • 데이터를 어떻게 변환할 것인가
  • 데이터를 활용하고 확인하는 과정
  • BigQuery 환경 설정 방법
따`ddah
따`ddah
    250x250
  • 따`ddah
    IT's ddah
    따`ddah
  • 관리    글쓰기
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • Projects
        • Auto Post : SNS 자동 업로더
      • kmooc N
        • 기계 학습 기반의 데이터 공학
      • Algorithm
        • [C] Do it! 자료구조와 함께 배우는 알고리..
        • 알고리즘 스터디
        • 코딩 테스트
      • Basic
        • 운영체제 OS
        • 컴퓨터구조
        • 소프트웨어공학 (UML)
      • DBMS
        • 데이터베이스 이론
        • MySQL
        • Oracle SQL
        • BigQuery
        • Yammer
      • Programming
        • Python
        • C
        • Java
        • React
        • JavaScript
        • R
      • 빅데이터
      • AI N
        • 멀티미디어응용
        • 머신러닝
        • 인공지능 N
      • 자격증
        • Azure DP-900
        • Azure AI-900
        • SQLD
        • CSTS
      • 대외활동 및 인턴
        • 인턴
        • LG Aimers
        • Outta
        • 빅데이터 분석 학회 BDA
        • 세계시민교육연구소 청년단 GYIA
      • Tool
        • Git
        • IDE
      • 도서
        • IT
      • 그 외
        • 단축키
        • ✞
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    input
    주석
    오라클SQL
    취업
    BDA학회
    importturtle
    react
    javascript
    Oracle
    대학생학회
    대외활동
    sql
    python
    파이썬
    js
    자료형
    print(f"")
    티스토리챌린지
    오블완
    빅데이터분석
    dbms
    취업준비
    리액트
    jsx
    Py
    파이썬{}
    자바스크립트
    파이썬 챗봇 만들기
    AI역량검사
    이름나이
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
따`ddah
어떻게 하면 SQL 쿼리를 잘 작성하고 오류를 디버깅 할까?
상단으로

티스토리툴바