ORDER BY : 컬럼 정렬하기
형식
SELECT 컬럼명1, 컬럼명2
FROM 테이블명
WHERE 조건식
ORDER BY 컬럼명1 [ASC/DESC], 컬럼명2 [ASC/DESC];
SELECT 컬럼명1, 컬럼명2
FROM 테이블명
WHERE 조건식
ORDER BY 컬럼번호1 [ASC/DESC], 컬럼번호2 [ASC/DESC];
참고
ASC : 오름차순, ASC는 생략가능하다.
DESC : 내림차순
예시
-- scott 스키마
-- ASC : 올림차순
SELECT ename, sal FROM emp
ORDER BY sal ASC;
-- DESC : 내림차순
SELECT ename, sal FROM emp
ORDER BY sal DESC;
-- NULL 먼저 나오도록 하는법
SELECT ename, comm FROM emp
ORDER BY comm NULLS FIRST;
-- NULL 나중에 나오도록 하는법
SELECT ename, comm FROM emp
ORDER BY comm NULLS LAST;
-- 위와 동일 : NULLS LAST = default 값
SELECT ename, comm FROM emp
ORDER BY comm;
-- hr 스키마
-- 두가지 정렬 가능
SELECT employee_id, job_id, salary FROM employees
ORDER BY job_id ASC, salary DESC;
GROUP BY : 통계를 내기 위한 그룹화
형식
SELECT 컬럼명
FROM 테이블명
WHERE 조건식
GROUP BY 필드명1, 필드명2,.. 필드명n
HAVING 그룹 내 조건식;
참고
GROUP FUNCTION : COUNT() , SUM(), AVG(), MAX(), MIN()
예시
-- hr 스키마
-- COUNT : 얼마나 있느냐?
SELECT COUNT(salary) FROM employees
WHERE job_id = 'IT_PROG';
SELECT COUNT(salary), COUNT(*), SUM(salary), AVG(salary), MAX(salary), MIN(salary)
FROM employees
WHERE job_id = 'IT_PROG';
SELECT job_id
FROM employees
GROUP BY job_id
ORDER BY job_id;
/* 묶은 다음에는 일반 컬럼은 사용할 수 없다.
SELECT job_id, first_name
FROM employees
GROUP BY job_id
ORDER BY job_id;
*/
SELECT job_id, COUNT(*), SUM(salary), AVG(salary)
FROM employees
GROUP BY job_id
ORDER BY job_id;
-- 업무별로 급여의 합계가 100000이상인 업무만 출력하라.
-- 1. GROUP 2. HAVING
SELECT job_id, SUM(salary)
FROM employees
GROUP BY job_id
HAVING SUM(salary) >= 100000;
-- 급여가 5000이상 받는 사원으로 합계를 내서 업무로 그룹화하여
-- 급여의 합계가 20000을 초과하는 업무명을 구하라
-- 1. WHERE절 2. GROUP 3. HAVING 4. ORDER
SELECT job_id, SUM(salary) AS 합계
FROM employees
WHERE salary >= 5000
GROUP BY job_id
HAVING SUM(salary) > 20000
ORDER BY 합계 DESC;
DISTINCT : 출력 컬럼의 중복 없애기
형식
SELECT DISTINCT 컬럼명 FROM 테이블명;
예시
-- emp 스키마
-- job의 중복행 제거
SELECT DISTINCT job FROM emp;
DESC : 테이블의 구조 보기
형식
DESC 테이블명;
예시
-- emp 스키마
-- emp테이블의 구조 확인
DESC emp;
'IT > SQL' 카테고리의 다른 글
[Oracle DB SQL] SUB QUERY 겉핥기 (0) | 2021.05.29 |
---|---|
[Oracle DB SQL] JOIN/inner join/full outer join/cross join /left outer join/right outer join/self join (0) | 2021.05.27 |
[Oracle DB SQL] WHERE절/비교연산자/ALL/ANY/IN/BETWEEN/LIKE (0) | 2021.05.26 |
[Oracle DB SQL] CREATE TABLE/INSERT INTO/SELECT/VALUES/DROP/ALIAS/데이터 형식 (0) | 2021.05.25 |
[Oracle DB SQL] SQL Standard Function/DUAL TABLE/문자형함수/숫자함수 (0) | 2021.05.25 |