SQL 3일차

kinghong97·2022년 3월 16일
0

같은 것으로 묶기
GROUP BY 사용하기
SELECT 컬럼1, COUNT(컬럼1)
FROM 테이블
GROUP BY 컬럼1

쿼리문 실행 순서
5 - SELECT
1 - FROM
2 - WHERE
3 - GROUP BY
4 - HAVING
6 - ORDER BY

추가

1 - FROM
2 - ON
3 - JOIN
4 - WHERE
5 - GROUP BY
6 - CUBE / ROLLUP
7 - HAVING
8 - SELECT
9 - DISTINCT
10 - ORDER BY
11 - TOP / LIMIT / OFFSET

날짜에서 특정 값만 뽑기
YEAR(DATETIME) # 년
DAY(DATETIME) # 일
HOUR(DATETIME) # 시간
MINUTE(DATETIME) # 분
SECOND(DATETIME) # 초

이걸로 GROUP BY 나 ORDER BY하려면 DATETIME 대신 MINUTE(DATETIME) 이걸 넣어야함
GROUP BY MINUTE(DATETIME) 이렇게

카운트나 위에 날짜 뽑은 값 컬럼 이름 변경하기
SELECT YEAR(DATETIME) YEAR, COUNT(DATETIME) COUNT
이렇게 하면 YEAR 이랑 COUNT 가 컬럼 이름으로 생김

이걸로 조건 붙힐때
WHERE 은
WHERE DAY(DATETIME) >= 3 AND DAY(DATETIME) <= 10 이렇게하는데

HAVING 은
HAVING DAY >=3 AND DAY <= 10 이렇게 한다

변수 선언하기
SET @hour := -1; <- ; 있어야함;;;;

변수 사용하기
SELECT (@hour := @hour + 1) as HOUR,
(SELECT COUNT(*) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) = @hour) as COUNT #미니쿼리? 사용할땐 컬럼 명을 지정해 줘야한다 왜 셀렉이 하나 더 있는지는 모르겠음
FROM ANIMAL_OUTS
WHERE @hour < 23 # 23까지 나온다 22까지 실행되서 그런가 봄

조건문 리스트 안에 있는 것만 가져오기
WHERE NAME IN ('채영', '채용', '최웅')

조건문 hi가 들어가는 이름 찾기
WHERE NAME LIKE '%hi%'

컬럼에 조건 IF문 넣기
SELECT ANIMAL_ID, NAME,
IF(SEX_UPON_INTAKE LIKE '%Neutered%' OR SEX_UPON_INTAKE LIKE '%Spayed%', 'O', 'X') AS '중성화' # 이름 정해주는거 잊지 말기
FROM ANIMAL_INS
ORDER BY ANIMAL_ID

0개의 댓글