AI BigData Class
-
SQL(ORDER BY)SQL 2023. 4. 18. 21:56
◆ ORDER BY: SQL 문장으로 조회된 데이터들을 다양한 목적에 맞게 특정 칼럼 기준으로 정렬하여 출력 - 실행순서: from->where->group by->having->select->order by - ASC: 오름차순/ DESC: 내림차순 - 예제 SELECT DEPTNO , SUM(SAL) AS SUM_SAL , ROUND(AVG(SAL), 2) AS AVG_SAL FROM EMP GROUP BY DEPTNO ORDER BY SUM_SAL; ◆ PRACTICE 1) EMP 테이블에서 급여가 큰 순서대로 결과 출력 SELECT DEPTNO 부서번호, ENMAE 이름, JOB 직업, SAL 급여 FROM EMP ORDER BY SAL DESC;(또는 ORDER BY 급여 DESC) 2) EMP..
-
SQL(HAVING 절)SQL 2023. 4. 18. 21:41
◆ HAVING문을 사용하여 그룹핑된 데이터에서 원하는 조건으로 추출 가능 - 실행순서: from -> where -> group by -> having -> select ※ 문법적으로는 group by와 having의 순서를 바꿔도 에러 없이 수행 되지만 논리적으로 순서 지키는 것 권고 ◆ PRACTICE 1) EMP테이블에서 직업 별로 최고 급여액, 최저 급여액, 총 급여액, 평균 급여액을 구하고, 최종적으로 총급여액이 6000 이상인 데이터만 출력하는 질의 작성 SELECT JOB , MAX(SAL) AS SAL_MAX , MIN(SAL) AS SAL_MIN , SUM(SAL) AS SAL_TOTAL , ROUND(AVG(SAL)) AS SAL_AVG FROM EMP GROUP BY JOB HAVI..
-
SQL(GROUP BY)SQL 2023. 4. 18. 21:34
◆ GROUP BY 문을 사용하여 데이터 그룹핑("~별로" 표현) - 실행순서: FROM->WHERE->GROUP BY->SELECT - 예제 SELECT DEPTNO , SUM(SAL) , ROUND(AVG(SAL), 2) FROM EMP GROUP BY DEPTNO; SELECT 성별 , COUNT(*) AS CNT FROM 수강 WHERE 강의번호 = 1 -- 데이터모델링과SQL GROUP BY 성별; ※ GROUP BY 사용시, Select List에는 Group by에 기술된 칼럼 외의 칼럼은 집계함수만 사용가능 ◆ PRACTICE 1) EMP테이블에서 직업 별로 최고 급여액, 최저 급여액, 총급여액, 평균 급여액을 표시하는 질의 작성 SELECT JOB , MAX(SAL) AS SAL_MAX ..
-
다중행 함수(집계함수 Aggregate Function)SQL 2023. 4. 18. 21:23
◆ 집계함수 - COUNT(*): 전체 Row의 개수 - COUNT(exp): exp 열의 Row 개수, NULL은 연산에서 제외 SELECT COUNT(*) , COUNT(MGR) # NULL값이 존재한다면 제외하고 카운트 , COUNT(1) - SUM(exp): exp 열 값의 총합, NULL은 연산에서 제외 - AVG(exp): exp 열 값의 평균, NULL은 연산에서 제외 - MAX(exp): exp 열 중 가장 큰 값, NULL은 연산에서 제외 - MIN(exp): exp 열 중 가장 작은 값, NULL은 연산에서 제외 - STDDEV(exp): exp 값의 표준편차, NULL은 연산에서 제외 - VARIAN(exp): exp 값의 분산, NULL은 연산에서 제외 ◆ PRACTICE 1) EM..
-
SQL 함수(CASE 문)SQL 2023. 4. 13. 19:32
◆ CASE 표현은 IF-THEN-ELSE 논리와 유사한 방식으로 표현하여 비교 연산 기능 보완 SELECT LOC , CASE WHEN LOC = 'NEWYORK' THEN 'EAST' WHEN LOC = 'BOSTON' THEN 'EAST' ELSE 'ETC' END AREA FROM DEPT; 부서번호가 30인 대상 중 커미션(COMM)이 NULL 또는 0인 대상은 급여의 10% 지급하는 결과 출력 SELECT ENAME, JOB, SAL, COMM , CASE WHEN COMM IS NULL OR COMM = 0 THEN SAL*0.1 직무가 MANAGER이면 부서를 '직책자'로 아니면 부서번호를 출력하는 SQL 작성 SELECT EMPNO, ENAME, JOB , CASE WHEN JOB = '..
-
SQL 함수(일반함수)카테고리 없음 2023. 4. 12. 21:46
◆ 일반함수 - NULLIF(EXP1, EXP2): EXP1과 EXP2가 같으면 NULL, 같지 않으면 EXP1 출력 - COALESCE(EXP1, EXP2, ...): 임의의 EXP 중에서 NULL이 아닌 최초의 EXP 출력, 모든 EXP가 NULL이면 NULL 출력 ◆ PRACTICE 부서번호가 30인 대상 중, 최종 지급 급여 출력(커미션이 있으면 급여에 합산) SELECT ENAME, JOB, SAL, COMM, , COMM+SAL TOT_SAL1 #COMM이 없는 사람의 SAL은 NULL로 나옴 , COALESCE(COMM+SAL, SAL) TOT_SAL FROM EMP WHERE DEPTNO = 30; 부서번호가 30인 대상 중, 최종지급 급여 출력(커미션 있으면 급여에 합산. 단 추가 인센티..
-
SQL 함수(명시적 유형변환 함수)SQL 2023. 4. 12. 21:36
◆ 명시적 데이터 유형변환: 데이터 유형을 변경하기 위해 함수를 명시적으로 제공하여 변화시키는 것 - TO_CHAR(숫자|날짜, FORMAT): 숫자or날짜형을 주어진 FORMAT 형태로 문자형으로 변환 - TO_DATE(문자, FORMAT): 문자형을 주어진 FORMAT 형태로 날짜(년월일) 형으로 변환 - TO_TIMESTAMP(문자, FORMAT): 문자형을 주어진 FORMAT 형태로 날짜(년월일씨뿐초) 형으로 변환 - TO_NUMBER(문자): 문자형에서 숫자형으로 변환 SELECT TO_CHAR(100, 'FM999') COL1 , TO_CHAR(999.9, 'FM999.99') COL2 , TO_DATE('20230301', 'YYYYMMDD') COL3 , TO_TIMESTAMP('20230..
-
SQL 함수(숫자 함수)SQL 2023. 4. 12. 21:16
◆ 숫자함수 - TRUNC: 지정된 소수점 자리로 값을 버림, 두번째 인자 미입력시 디폴트는 0 - ROUND: 지정된 소수점 자리까지 남기고 반올림, 두번째 인자 미입력시 디폴트는 0 - MOD: 나눗셈의 나머지 값 - CEIL: 해당 값의 숫자보다 크거나 같은 최소 정수 - FLOOR: 해당 값의 숫자보다 작거나 같은 최대 정수 SELECT TRUNC(3.14159, 3) COL1 , ROUND(3.14159, 3) COL2 , MOD(10, 3) COL3; COL1: 3.141 COL2: 3.142 COL3: 1 SELECT CEIL(3.14159) COL1 , FLOOR(3.14159) COL2; COL1: 4 COL2: 3 - ABS: 숫자의 절대값 반환 - SIGN: 숫자가 양수인지 음수인지 ..