반응형
2. 오라클 - ORDER BY, GROUP BY, HAVING
1) ORDER BY - 데이터 정렬해서 보기
● 오름차순으로 정렬하기
SQL>
SELECT employee_id, last_name, salary
FROM employees
WHERE salary >= 10000
ORDER BY salary;
● 내림차순으로 정렬하기
SQL>
SELECT employee_id, last_name, salary
FROM employees
WHERE salary >= 10000
ORDER BY salary DESC;
2) GROUP BY - 데이터 그룹화하기
● 그룹화하여 평균 구하기
SQL>
SELECT department_id, AVG(salary)
FROM employees
GROUP BY department_id
ORDER by department_id;
● 연도별 그룹화하기
SELECT TO_CHAR(hire_date, 'yyyy'), AVG(salary)
FROM employees
GROUP BY TO_CHAR(hire_date, 'yyyy');
3) HAVING - GROUP BY의 결과로부터 특정 조건을 만족하는 것만 조회하기
●조건에 만족하는 그룹만 출력하기
SQL>
SELECT department_id, AVG(salary)
FROM employees
GROUP BY department_id
HAVING AVG(salary0>=10000;
1) ORDER BY - 데이터 정렬해서 보기
ORDER BY 칼럼이름 [ASC|DESC]
※ ORDER BY에 기본은 ASC정렬(오름차순)이다.
ASC 오름차순 - 작은 값부터 큰 값
DESC 내림차순 - 큰 값부터 작은 값
※ ORDER BY에 기본은 ASC정렬(오름차순)이다.
ASC 오름차순 - 작은 값부터 큰 값
DESC 내림차순 - 큰 값부터 작은 값
● 오름차순으로 정렬하기
SQL>
SELECT employee_id, last_name, salary
FROM employees
WHERE salary >= 10000
ORDER BY salary;
>> employees 안에 있는 데이터 중 salary >= 10000 의 조건을 만족하는 데이터의 employee_id, last_name, salary 칼럼을 조회한다. 이때 salary의 데이터를 기준으로 오름차순으로 출력한다.
● 내림차순으로 정렬하기
SQL>
SELECT employee_id, last_name, salary
FROM employees
WHERE salary >= 10000
ORDER BY salary DESC;
>> employees 안에 있는 데이터 중 salary >= 10000 의 조건을 만족하는 데이터의
employee_id, last_name, salary 칼럼을 조회한다. 이 때 salary의 데이터를 기준으로 내림차순으로
출력한다.
2) GROUP BY - 데이터 그룹화하기
GROUP BY 칼럼이름
※칼럼의 동일한 데이터끼리 그룹으로 묶는다
※칼럼의 동일한 데이터끼리 그룹으로 묶는다
● 그룹화하여 평균 구하기
SQL>
SELECT department_id, AVG(salary)
FROM employees
GROUP BY department_id
ORDER by department_id;
>> employees 안에 있는 데이터 중 department_id, AVG(salary)를 조회한다.
조회할 때 부서별(department_id)로 그룹화 한 후 부서별 급여(salary)의 평균을 구한다. 그 후에
department_id를 기준으로 오름차순으로 출력한다.
※ AVG(salary)는 salary의 평균값을 구하는 공식.
※ AVG(salary)는 salary의 평균값을 구하는 공식.
● 연도별 그룹화하기
SELECT TO_CHAR(hire_date, 'yyyy'), AVG(salary)
FROM employees
GROUP BY TO_CHAR(hire_date, 'yyyy');
>> employees 안에 있는 데이터 hire_date, salary의 데이터를 hire_date의 연도별로 그룹화 한 후, 연도별 평균 값을 출력한다.
※TO_CHAR(hire_date, 'yyyy') 는 hire_date의 연도(yyyy)의 값을 구한다. TO_CHAR에서 더 설명함.
※TO_CHAR(hire_date, 'yyyy') 는 hire_date의 연도(yyyy)의 값을 구한다. TO_CHAR에서 더 설명함.
3) HAVING - GROUP BY의 결과로부터 특정 조건을 만족하는 것만 조회하기
GROUP GY 칼럼이름
HAVING 조건
※그룹으로 묶어진 칼럼에서 조건에 맞는 그룹만 조회한다.
HAVING 조건
※그룹으로 묶어진 칼럼에서 조건에 맞는 그룹만 조회한다.
●조건에 만족하는 그룹만 출력하기
SQL>
SELECT department_id, AVG(salary)
FROM employees
GROUP BY department_id
HAVING AVG(salary0>=10000;
>> employees 안의 데이터를 동일한 department_id 별로 그룹으로 묶어 그룹별 급여평균이 10000이상인 그룹만 조회한다.
반응형
'Programming' 카테고리의 다른 글
4. 오라클 - 단일행함수들 2)문자함수(LOWER, SUBSTR) (0) | 2009.07.16 |
---|---|
3. 오라클 - 단일행함수들 1)숫자함수(MOD, ROUND, WIDTH_BUCKET) (0) | 2009.07.14 |
1. 오라클(SQL 함수) - SELECT, WHERE (0) | 2009.07.14 |
1. Hello, Java (0) | 2009.06.09 |