SQL CASE, 그룹함수, GROUPBY, HAVING 개념정리와 적용예제
Devel/DB_SQL2020. 7. 22. 15:35
반응형
SQL CASE, 그룹함수, GROUPBY, HAVING 개념정리와 적용예제
◆CASE
SELECT EMPNO, ENAME, SAL, JOB
CASE JOB WHEN 'ANALYST' THEN SAL*1.1(, 안씀_
WHEN 'CLERK' THEN SAL *1.2
ELSE SAL
END "급여"
FROM EMP;
DECOBE
CASE 문과 다른점.
THEN, ELSE 없이 위 형식으로 사용한다.
예제:
***컬럼 제목은 ""
데이터베이트에 들어갈 것들은 ''
SIGN
=양수(1)인지 음수(-1)인지 0(0)인지 판단.
SIGN(100) = 1 ,SIGN(-100) = -1
+계시판에서 제목과 내용 동시에 검색 할때, 제목 아니면 내용으로 검색.
◆그룹함수
그룹함수에만 쓸 수 있는 걸 잊지말자!
+ DISTINCT DEFAULT 가 ALL임
SUM
AVG
MAX, MIN
+ 날짜 데이터에도 사용 됨.
COUNT
=행의 개수 세기
EX,
◆GROUP BY
=전체 테이블이 아닌 특정그룹으로 묶을 때 사용한다. ( 예: 부서별, 직급별)
+SELECT 에 들어간 컬럼과 GROUP BY에 들어간 컬럼 둘다 들어가 있어야 함.
시행 순서 WHERE-> GROUP-> 필요한 COLUMN 뽑아 온 후 정렬(ORDER BY)
+GROUP BY 뒤엔 AILIAS 쓰지 못함.
ORDER BY 뒤에 숫자 쓰지 못함.
**
ERROR WHY?
함수는 단일, 그룹이 있는데, 그룹은 여러개 계산후 하나 값이 나오는데
DEPTNO는 여러 값이 나오는데 AVG는 한개의 값이 나오므로 동시에 사용할 수 없다.
+
ERROR WHY?
SELECT 에 들어간 컬럼이 GROUP BY에도 똑같이 들어가 있어야한다.
ERROR WHY?
WHERE 절에는 그룹함수가 없 수 없다. 그룹되기 전에 미리 시행되기 때문에 그룹함수를 사용 할 수 없다.
**그룹함수 팁
:놓침....
**GROUP BY 에 있는 SELECT에 써줘야 하고, 그룹함수들 쓴다.
~~ 별로 라는 예제가 나오면 GROUP BY 를 쓴다.
EX.
COUNT 부서별로 출력됨.
◆HAVING 절
=GROUP BY에 의해 분류된 그룹을 제한하기 위한 방법.
실행 순서
WHERE->GROUP BY->HAVING -> COLUMN->함수->정렬
EX.
EX.
'Devel > DB_SQL' 카테고리의 다른 글
SQL DML(INSERT,DELETE,MERGE,UPDATE,NULL)개념과 적용예제 (0) | 2020.07.22 |
---|---|
[SQL] JOIN의 종류와 조인 예제 (0) | 2020.07.22 |
SQL 함수 총 정리와 적용예제 (0) | 2020.07.22 |
SQL함수 총 정리와 적용예제 (0) | 2020.07.22 |
SQL 비교연산자, 부정연산자, 논리연산자, LIKE, ORDER BY (0) | 2020.07.21 |
댓글()