Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- spring annotation
- 템플릿
- IP
- 깃 명령어
- 스프링 모달창
- static 예제
- 리스트 모달창
- singleton
- Servlet 맵핑
- 다중 모달창
- static
- 추상 메서드
- 객체협력
- react
- AOP란?
- 모달창 여러개
- downcasting
- 이클립스 오라클 연동
- oracle 연동
- GROUP BY
- 다운캐스팅
- 오라클 비교연산자
- Java
- 상속
- order by
- static메서드
- 형변환
- 사용자 데이터그램 프로토콜
- 싱클톤패턴
- SUB Query
Archives
- Today
- Total
모든지 기록하자!
[Oracle] ORDER BY , GROUP BY 와 예제 본문
728x90
이번 게시물에 핵심 기능을 알아보자
ORDER BY -- 자바의 SORTING과 동일
--형태 :
SELECT
FROM
WHERE
ORDER BY
SELECT 컬럼명
FROM 테이블명
ORDER BY 컬럼명 ASC; -- 올림차순 정렬
SELECT 컬럼명
FROM 테이블명
ORDER BY 컬럼명 DESC; -- 내림차순 정렬
-- ASC,DESC 모두 사용하는 응용문제
SELECT employee_id, job_id, salary
FROM employees
ORDER BY job_id ASC, salary DESC;
-- job_id를 먼저 올림차순 정렬 하고 그안에서 다시 salary로 내림차순 정렬
-- ALIAS으로도 가능하다.
SELECT 컬럼명 AS 별칭
FROM 테이블명
ORDER BY 별칭 DESC;
SELECT 컬럼명
FROM 테이블명
ORDER BY 컬럼명 NULLS FIRST; -- NULL이 제일위로 올라옴
-- NULLS LAST 는 디폴트값
형식 :
Select 칼럼명, 그룹함수
FROM 테이블명
WHERE 조건(연산자)
GROUP BY 칼럼명;
GROUP BY : 그룹으로 묶는 기능
HAVING : 묶었을 때 조건
묶은 다음 일반 컬럼 사용불가
통계 - GROUP FUNCTION
COUNT = 카운트
SUM = 합계
AVG = 평균
MAX = 최대값
MIN = 최소값
활용 예시와 실습 문제
/*
ORDER BY == SORTING
SELECT
FROM
WHERE
ORDER BY
*/
SELECT ename,sal
FROM emp
ORDER BY sal ASC; -- 올림차순 정렬
SELECT ename, sal
FROM emp
ORDER BY sal DESC; -- 내림차순 정렬
-- ALIAS
SELECT empno, ename, sal*12 AS annsal
FROM emp
ORDER BY annsal DESC;
SELECT ename, comm
FROM emp
ORDER BY comm NULLS FIRST; -- NULL이 제일위로 올라옴
--NULLS LAST 는 디폴트값
SELECT employee_id, job_id, salary
FROM employees
ORDER BY job_id ASC, salary DESC; -- job_id 정렬하고 그안에서 다시 내림차순 정렬
/*
GROUP BY : 그룹으로 묶는 기능
HAVING : 묶었을 때 조건
*/
SELECT DISTINCT job_id
FROM employees;
/*
통계 - GROUP FUNCTION
COUNT
SUM
AVG
MAX
MIN
*/
SELECT COUNT(salary) ,COUNT(*), SUM(salary), AVG(salary),
MAX(salary), MIN(salary)
FROM employees
WHERE job_id = 'IT_PROG';
-- 묶은 다음 일반 컬럼 사용불가
SELECT job_id, COUNT(*), sum(salary), AVG(salary)
FROM employees
GROUP BY job_id
ORDER BY job_id;
--COUNT : 각 부서별 몇명인가
-- 업무별로 급여의 합계가 1000000이상인 업무만 출력
SELECT job_id, SUM(salary)
FROM employees
GROUP BY job_id -- 그룹바이는 묶은것만 출력가능 --1번
HAVING SUM(salary) >= 100000; --2번
--HAVING은 묶은 다음에 조건
-- 급여가 5000이상 받는 사원으로 합계를 내서 업무로 그룹화하여
-- 급여의 합계가 20000을 초과하는 업무명을 구하세요
SELECT job_id, SUM(salary) AS 합계
FROM employees
WHERE salary>= 5000 --WHERE 절이 항상 먼저
GROUP BY job_id
HAVING SUM(salary) > 20000
ORDER BY 합계 DESC;
728x90
'Database' 카테고리의 다른 글
[Oracle] JOIN 과 예시 (0) | 2021.05.28 |
---|---|
[Oracle] SELECT문, WHERE절, 비교연산자 기초 예제 (0) | 2021.05.26 |
[Oracle] WHERE절과 비교연산자와 예제 (0) | 2021.05.26 |
[Oracle] SELECT문과 예제 (0) | 2021.05.26 |
[Oracle] Standard Function (0) | 2021.05.25 |
Comments