TIL 22

이예인·2023년 11월 14일
0

TIL

목록 보기
3/10

SQL

주석

  • -- : 한 줄 짜리 주석
  • /* */ : 여러 줄 짜리 주석

네이밍

  • 단수형 vs 복수형
    • User vs Users
  • snake vs camel
    • user_session_channel vs UserSessionChannel

CTAS

  • CREATE TABLE table_name AS SELECT
    • vs CREATE TABLE and then INSERT

CASE WHEN

  • 필드 값의 변환을 위해 사용
CASE
	WHEN 조건1 THEN1
	WHEN 조건2 THEN2
	ELSE3
END 필드 이름

NULL

  • 0 + NULL ?
  • IS NULL, IS NOT NULL
  • ORDER BY시 가장 작은 값으로 생각한다.

COUNT

  • COUNT(1) : 테이블의 모든 수 카운트
  • COUNT(0) : 테이블의 모든 수 카운트
  • COUNT(*): 테이블의 모든 수 카운트
  • COUNT(NULL): 0
  • COUNT(column1): NULL을 제외한 column1 카운트
  • COUNT(DISTINCT column1): NULL을 제외하고 DISTINCT하게 카운트

Type Casting

  • :: 오퍼레이터 사용
    • category::float
  • cast 함수 사용
    • cast(category as float)

주의할 점

현업에서 깨끗한 데이터는 잘 없다.

  • 데이터를 뽑아놓고 확인하는 작업이 필요하다.
  • unit test 형태로 체크해볼 수 있다.
    • 중복된 레코드가 있는지 체크한다.
    • 최근 데이터의 존재여부를 체크한다.
    • pk uniqueness를 체크한다.
    • 값이 비어있는 칼럼이 있는지 체크한다.

어느 시점이 되면 테이블이 너무 많아진다.

  • Data Discovery 문제가 생긴다.
    • 어떤 테이블이 내가 원하고 신뢰할 수 있는 정보가 들어있나?
    • 누구한테 물어봐야 하나?
  • 메타 정보를 잘 관리하는 것이 중요하다.
  • 이 문제를 해결하기 위한 오픈소스와 서비스 출현
    • DataHub(LinkedIn), Amundsen(Lyft), …
    • Select Star, DataFrame, …

0개의 댓글

관련 채용 정보