SELECT channel_id,COUNT(1)
FROM prod.session
GROUP BY 1;
SELECT
LEFT(created, 7) AS mon,-> created에서 7글자만 추출(년-월)
COUNT(1) AS session_count
FROM prod.session
GROUP BY 1 (==) GROUP BY mon, GROUP BY LEFT(created, 7)
ORDER BY 1
SELECT channel_id,
CASE
WHEN channel_id in (1, 5, 6) THEN 'Social-Media'
WHEN channel_id in (2, 4) THEN 'Search-Engine'
ELSE 'Something-Else'
END channel_type
FROM prod.session;
값이 존재하지 않음을 나타내는 상수-> 0,""과 다름
필드에 값이 없는 경우 null로 설정가능하다.
(-> default 값을 지정해 놓아 값이 존재 하지 않을때 null이 아니라 default 값으로 지정되는 경우도 있다.)
null은 !=,==아니고 is NULL, is not NULL써야한다.(맨날 실수 했던것)
NULL의 사칙연산 결과는 NULL이다-> 값이 없기 때문에!!!
count(null)이면 count하지 않는다 (결과는 0으로 나온다!!!)
만약에 다음과 같이 실행한다면
select * from ys_alert where vistal_id=null
다음과 같은 결과가 나온다.
is null을 통해 해결한다
select * from ys_alert where vistal_id is null
대소문자 구별없이 문자열 매칭기능 제공한다.
where channel_id like %u-> u로 끝나는 것들을 찾는 조건문
where channel_id like %o%-> o가 들어가는 것들을 찾는 조건문
not like -> like아닌 것들(여집합 느낌??)
DATE Conversion:
NOW : 현재시간
타임존 관련 변환
CONVERT_TZ(now(), 'GMT', 'Asia/Seoul')
DATE, WEEK, MONTH, YEAR, HOUR, MINUTE, SECOND, QUARTER, MONTHNAME
DATEDIFF: Day 기준으로 날짜끼리 빼는 연산
DATE_ADD(date,interval 10 day)-> date에 10일더하기
STR_TO_DATE('01.5.2013','%d,%m,%Y') DATE_FORMAT
:2013-05-01으로 포맷하기
cast(c as float)->c를 float로 변경해라
==convert(a,float)
c=1/2이라면 float캐스팅하여 0.5 나타낸다.