데이터 처리 도구/SQL 16

[MySQL] 윈도우 함수(Window Functions) - 1

윈도우 함수- 윈도우 함수란, 행(row) 집합을 대상으로 계산하는 함수다.- 따라서 윈도우 함수를 사용하면 행과 행간의 관계를 쉽게 정의할 수 있다.- 행 집합 단위로 계산한다는 점에서 'GROUP BY + 집계 함수'를 사용하는 것 비슷하지만 다르다. 'GROUP BY + 집계 함수' vs. 'Window Functions + 집계 함수'GROUP BY + 집계 함수는 해당 되는 행(row) 집합에 대해서 단일 행으로 그룹화하여 쿼리 결과를 보여주지만, 윈도우 함수는 쿼리 결과를 각 행에 대해 생성한다. 따라서 윈도우 함수를 사용하면 행의 수가 그대로 유지된다.GROUP BY 와 함께 사용하는 집계 함수들은 대부분 윈도우 함수에서도 사용 가능하고, 집계 함수는 아니지만 윈도우 함수에서만 사용할 수 있..

[MySQL] String Functions and Operators (2)

문자열 패턴 찾기 WHERE 컬럼명 LIKE '문자열 패턴' : 특정 컬럼에서 원하는 문자열 패턴과 일치하는 문자열 데이터를 반환해라. WHERE 컬럼명 NOT LIKE '문자열 패턴' : 특정 컬럼에서 원하는 문자열 패턴과 일치하지 않는 문자열 데이터를 반환해라. 1. _ (언더스코어) : 한글자 와일드 카드. _ 하나당 하나의 글자를 의미. 즉 몇 개의 문자가 포함되는지 알려주는 조건. SELECT * FROM Users WHERE city LIKE 'C______' • 'C______' → 'C' 로 시작한 다음에 6개의 문자가 따라나오는 값 조회하기 2. % (퍼센트) : 와일드 카드. %가 해당하는 부분은 어떤 것이 들어가도 상관없다는 의미. SELECT * FROM Users WHERE cit..

[MySQL] String Functions and Operators (1)

대/소문자로 변환하기SELECT UPPER('Cherry')-- OUTPUT: CHERRYSELECT LOWER('Cherry')-- OUTPUT: cherryUPPER(컬럼명 or 문자열): 모든 문자를 대문자로 반환해라. LOWER(컬럼명 or 문자열): 모든 문자를 소문자로 반환해라.   문자열 치환하기SELECT REPLACE(Salary, 0, '')FROM EMPLOYEESREPLACE(컬럼명 or 문자열, '기존 패턴', '대체 패턴'): 문자열에 포함된 기존 패턴을 대체 패턴으로 바꿔서 반환해라. • SELECT 로 조회하는 것이므로, REPLACE 함수로 인한 데이터 변경은 없다.   문자열 자르기(추출하기)LEFT('Africa', 3) -- AfrRIGHT('Africa..

[MySQL] Numeric Functions and Operators (1)

소수점 이하 숫자 다루기ROUND(7.825, 2) -- 7.83TRUNCATE(7.825, 2) -- 7.82CEIL(7.825) -- 8FLOOR(7.825) -- 7ROUND(컬럼명 or 값, n): 값을 소수점 이하 n자리수로 반올림해라. TRUNCATE(컬럼명 or 값, n): 값을 소수점 이하 n자리수까지 남기고, 나머지 버려라. CEIL(컬럼명 or 값): 값의 소수점 이하를 올림해서 정수로 반환해라. FLOOR(컬럼명 or 값): 값의 소수점 이하를 버림해서 정수로 반환해라.  제곱, 제곱근 연산하기POWER(3, 2) -- 9POW(3, 2) -- 9SQRT(9) -- 3POWER(컬럼명 or 값, n)POW(컬럼명 or 값, n): 값..

[MySQL] 조건문 (CASE문, IF함수, IFNULL함수)

CASE문CASE WHEN (A조건) THEN (A조건이 True 일 때 반환할 값) WHEN (B조건) THEN (B조건이 True 일 때 반환할 값) ELSE (위의 조건이 모두 False 일 때)END• ELSE에 값을 지정해주지 않으면 해당 값은 자동으로 NULL값 반환한다.• ELSE를 아예 생략하는 경우에도 ELSE NULL이 자동으로 지정된다. • WHEN절 두 개를 썼는데 두 조건에 전부 부합하는 값이 있는 경우, 그 값은 먼저 기재된 WHEN절에 부합되어 반환할 값이 정해졌기 때문에 다음 WHEN절 조건에는 걸리지 않는다.  CASE문 활용(1) 새로운 컬럼 만들기SELECT CASE WHEN Country = 'Germany' AND PostalCod..

[MySQL] 집계 함수와 GROUP BY절, HAVING절

그룹별로 데이터 꺼내오기 1. GROUP BY SELECT sports , AVG(height) FROM olympic GROUP BY sports GROUP BY "그룹핑할 기준 컬럼명" • GROUP BY는 주로 집계 함수와 함께 사용된다. • 그룹핑할 기준 컬럼명을 SELECT 바로 뒤에 써주면 보기 편하다. 만약 안써주었더라도 집계함수가 뒤에 써주었다면 실행되는데, 이때는 집계함수의 결과 값만 추출된다. 반대로 SELECT에 기준 컬럼명만 써주고 집계함수를 안써주면 기준 컬럼명만 출력된다. • 그룹핑할 기준 컬럼이 두개 이상이면 콤마로 나열해주면 된다. • ORDER BY의 위치는 GROUP BY 다음에 온다. 2. GROUP BY + HAVING SELECT sports , AVG(height)..

1 2 3