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;

+ Recent posts