
SQL기본 함수 구조 메모

전략적 사고와 Having절 서브쿼리 필터링 기술을 통해 풀어낼 수 있는 문제

CTE를 사용한 조건 필터링

단일 테이블 계층분석을 위한 SELF-JOIN 사용

where 절 or 연산자를 통한 복수 조건 필터링

where 조건에 and 연산자를 넣어 모든 조건을 충족하는 강력한 filtering 수행

multiple self join 을 통한 문제 해결
UNION좀 써라

window function(sum over)

select as 를 통한 column생성과 union

not in 연산자

window function(lag, lead)
order by에 집계함수가 들어갈 수 있다는 충격적인 사실!

union all 을 통해 중복값을 포함한 테이블을 만들어 subquery로 재사용하기

where 절 복수의 조건 필터링

dense_rank() over(partition by __ order by __ desc)
mysql: concat(), lower(), upper(), substring(string,start,length)
group_concat() 함수 첫 사용!
**JOIN을 굳이 사용하지 않고도 from절에 복수의 테이블을 넣고 where 조건에서 연결고리를 명시해주면 간단하고 직관적으로 이해가 되는 쿼리를 작성할 수 있다.**
REGEXP 사용하여 이메일 검증하기!!!
SET 키워드로 INDEX를 생성하여 중앙 INDEX의 VALUE를 찾아 평균내어 중앙값을 계산하는 방법!
vowels (i.e., a, e, i, o, or u) = 모음
LIKE 보다 훨씬 효율적이고 간지나는 REGEXP 정규표현식
COALESCE 사용하자!!! 최적화, 직관성 모두 잡는 방법임. 참고로 COALESCE의 영문 뜻은 "하나로 만들다" "병합하다" 이다.
INDEX 최대 활용

LIKE와 REGEXP, 상황에 따른 유연한 사용

mySQL에서 차집합을 구하려면 LEFT JOIN 후 IS NULL 필터링을 하면 된다.
TIMESTAMPDIFF(단위, 끝시간, 시작시간)

INNER JOIN의 쓰임
UNION과 NULL AS 칼럼
JOIN절에서 ON은 병합 조건이다!
SUM(조건)

결국엔 논리력 싸움이다.