메뉴 여닫기
개인 메뉴 토글
로그인하지 않음
만약 지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
 
(사용자 3명의 중간 판 64개는 보이지 않습니다)
1번째 줄: 1번째 줄:
__notoc__
__notoc__
https://dbstudy.co.kr/w/resources/assets/dbstudy_iconx1.png  
https://dbstudy.co.kr/w/resources/assets/dbstudy_iconx1.png  
= Welcome To DB STUDY =
= Welcome To DB STUDY - {{CURRENTYEAR}}.{{CURRENTMONTHNAME}}.{{CURRENTDAY}}({{CURRENTDAYNAME}}) =
* {{SERVER}}
* 게시글 총 : {{NUMBEROFPAGES}} 건 , 사용자 : {{NUMBEROFUSERS}} 명 ,
<p sizes="(max-width: 600px) 480px,800px">
<p sizes="(max-width: 600px) 480px,800px">
https://dbstudy.co.kr/w/images/dbstudy_main.png
https://dbstudy.co.kr/w/images/dbstudy_logo.jpg
</p>
</p>
== ORACLE ==
{{틀:타이틀 라운드
= [[ORACLE SQL 30일 학습|오라클 SQL 30일 학습]]=
|제목=[[:Category:oracle|오라클]]: {{PAGESINCATEGORY: oracle}} 건 ,  [[:Category:postgresql|PostgreSql]] : {{PAGESINCATEGORY: postgresql}} 건 ,  [[:Category:mysql|MySQL]]: {{PAGESINCATEGORY: mysql}} 건,  [[:Category:linux|LINUX]]: {{PAGESINCATEGORY: linux}} 건
== [[SQL 기본]] ==
|아이콘=emoji_objects
=== [[데이터 베이스 용어 설명]] ===
}}
=== [[SELECT 구문]] ===
==== [[GROUP BY 절]] ====


물론이죠! Oracle의 GROUP BY 절에 대해 초보자도 이해하기 쉽게 설명해드릴게요.
= ORACLE =


== [[ORACLE SQL 30일 학습|오라클 SQL 30일 학습]]==
# [[SQL 기본]]
## [[데이터 베이스 용어 설명]]
## [[데이터 베이스 용어 설명#현업에서 사용하는 업무 용어|현업에서 사용하는 업무용어]]
## [[테이블 컬럼 데이터 유형|컬럼 데이터 유형]]
# [[SQL 실행]]
## [[테이블 생성 과 데이터입력 ]]
## [[SELECT 구문|SELECT 기본 구문 작성 순서]]
### [[GROUP BY 절]]
### [[WITH 절]]
### [[SQL 조인]]
## [[INSERT 구문]]
## [[UPDATE 구문]]
## [[DELETE 구문]]
## [[MERGE 구문]]
## [[CREATE TABLE 구문]]
## [[ALTER TABLE 구문]]
## [[DROP TABLE 구문]]
## [[TRUNCATE TABLE 구문]]
# SQL 활용
## [[오라클SQL 과 안시SQL]]
## [[SQL 실행원리 와 과정 ]]
## [[최적의 SQL 작성법]]
## [[스칼라 인라인뷰 서브쿼리|서브쿼리(스칼라/인라인뷰/서브쿼리)]]
## [[오라클 내부함수]]
## [[원도우 함수|윈도우 함수(분석 함수)]]
## [[집계함수 (aggregate function)]]
## [[그룹 함수]]
## [[인덱스]]
## [[CONNECT BY 절]]
## [[LATERAL]]
# [[PL/SQL 기초|'''PL/SQL 기초''']]
## [[함수]]
## [[프로시져]]
## [[패키지]]
## [[트리거]]
# SQL 고급
## [[정규표현식(regular expression)]]
## [[전체 텍스트 검색 match]]
## [[테이블 샘플링 (Table Sampling)]]
## [[임시 테이블 (Temporary Tables)]]
## [[동적 SQL (Dynamic SQL)]]
----
== [[ORACLE SQL 튜닝]] ==
=== [[성능을 고려한 설계]] ===
=== [[효율적인 SQL 작성법]] ===
=== [[튜닝 환경 구축]] ===
# XPLAN 사용법
# REAL PLAN 사용법
# SQL 트레이스 방법
=== [[인덱스 설계]] ===
# 인덱스 아키텍처
# 인덱스 종류
# 엑세스 패스
=== [[효율적인 조인 방법 ]] ===
=== [[튜닝 힌트]] ===
=== [[병렬 쿼리 튜닝]] ===
=== [[ORACLE 튜닝 대상 조회]] ===
=== [[파라미터 설계]] ===
----
== [[ORACLE 백업 과 복구 ]] ==
----


1. GROUP BY 절이란?
= [[DBA_수행_방법론_(공공/대기업_SI_프로젝트)]]=
• 뜻 (영문): GROUP BY is used to group rows that have the same values in specified columns into summary rows.
== [[DBA_수행_방법론_(공공/대기업_SI_프로젝트)#개요|개요]] ==
• 뜻 (한글): GROUP BY는 특정 컬럼 값을 기준으로 같은 값들끼리 묶어서 결과를 보여주는 SQL 절입니다.
== [[단계별 수행 방법론]] ==
=== [[분석 단계]] ===
==== [[산출물]] ====
==== [[주요 작업 TASK]] ====
=== [[설계 단계]] ===
==== [[산출물]] ====
==== [[주요 작업 TASK]] ====
=== [[구축 단계]] ===
==== [[산출물]] ====
==== [[주요 작업 TASK]] ====
=== [[테스트 단계]] ===
==== [[산출물]] ====
==== [[주요 작업 TASK]] ====
=== [[전개 단계]] ===
==== [[산출물]] ====
==== [[주요 작업 TASK]] ====




2. 특징
----
• 집계 함수(예: COUNT(), SUM(), AVG(), MAX(), MIN())와 함께 자주 사용됩니다.
• 데이터를 그룹별 요약하거나 분류해서 볼 수 있습니다.
 
 
3. 사용 방법
 
SELECT 컬럼명, 집계함수
FROM 테이블명
GROUP BY 컬럼명;
 
 
 
 
4. 예제
 
예제 테이블: employees
 
emp_id name department salary
1 John Sales 3000
2 Alice Sales 3200
3 Bob IT 4000
4 Carol IT 4200
5 David HR 2800
 
예제 1: 부서별 평균 급여 구하기
 
SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department;
 
결과
 
department avg_salary
Sales 3100
IT 4100
HR 2800
 
설명: department(부서)별로 묶어서, 각 부서의 salary(급여) 평균을 구한 것입니다.
 
 
예제 2: 부서별 직원 수 구하기
 
SELECT department, COUNT(*) AS num_employees
FROM employees
GROUP BY department;
 
결과
 
department num_employees
Sales 2
IT 2
HR 1
 
설명: GROUP BY department를 통해 부서별로 직원 수를 센 것입니다.
 
 
5. 주의사항
• GROUP BY에 사용하지 않은 컬럼은 SELECT절에 직접 쓸 수 없습니다. (단, 집계 함수 안에 들어가는 경우는 예외)
• GROUP BY는 정렬 기능이 아닙니다. 정렬은 ORDER BY를 사용해야 합니다.
 
 
좋습니다! 이제 GROUP BY의 복잡한 예제와 함께 자주 같이 쓰이는 **고급 개념 (HAVING, 다중 컬럼 그룹화 등)**도 설명해드릴게요.
 
 
1. HAVING 절
 
개념
• HAVING은 GROUP BY로 그룹화한 결과에 조건을 거는 절입니다.
• WHERE는 그룹화 전에 조건, HAVING은 그룹화 후 조건입니다.
 
 
예제 테이블: sales
 
id product region amount
1 Laptop Seoul 2000
2 Laptop Busan 1500
3 Phone Seoul 1000
4 Phone Busan 1200
5 Laptop Seoul 2200
6 Phone Seoul 1300
 
 
 
 
예제 1: 지역별로 제품 판매 총합이 3000 이상인 경우만 보기
 
SELECT region, SUM(amount) AS total_sales
FROM sales
GROUP BY region
HAVING SUM(amount) >= 3000;
 
결과
 
region total_sales
Seoul 5500
 
설명: GROUP BY region으로 지역별로 묶고, HAVING을 통해 총합이 3000 이상인 지역만 필터링합니다.
 
 
2. 다중 컬럼 GROUP BY
 
개념
• 두 개 이상의 컬럼을 기준으로 복합적으로 그룹화할 수 있습니다.
 
 
예제 2: 지역 + 제품별 판매 총액 구하기
 
SELECT region, product, SUM(amount) AS total_sales
FROM sales
GROUP BY region, product;
 
결과
 
region product total_sales
Seoul Laptop 4200
Seoul Phone 2300
Busan Laptop 1500
Busan Phone 1200
 
설명: region과 product를 동시에 그룹화하여, 각 지역-제품 조합별로 총 판매량을 계산했습니다.
 
 
3. GROUP BY + JOIN 활용
 
복잡한 데이터 분석에는 JOIN과 GROUP BY를 함께 사용합니다.
 
 
예제 테이블
 
employees
 
emp_id name dept_id
1 John 10
2 Alice 10
3 Bob 20
 
departments
 
dept_id dept_name
10 Sales
20 IT
 
salaries
 
emp_id salary
1 3000
2 3500
3 4000
 
 
 
 
예제 3: 부서별 평균 급여 구하기 (JOIN 사용)
 
SELECT d.dept_name, AVG(s.salary) AS avg_salary
FROM employees e
JOIN departments d ON e.dept_id = d.dept_id
JOIN salaries s ON e.emp_id = s.emp_id
GROUP BY d.dept_name;
 
결과
 
dept_name avg_salary
Sales 3250
IT 4000
 
설명: 여러 테이블을 JOIN해서 dept_name 기준으로 묶고 평균 급여를 계산했습니다.
 
 
4. ROLLUP (고급)
 
ROLLUP은 그룹별 합계 외에 **전체 합계(총계)**까지 같이 보여줍니다.
 
 
예제 4: 제품별 판매 총액과 전체 총액까지 보여주기
 
SELECT product, SUM(amount) AS total_sales
FROM sales
GROUP BY ROLLUP(product);
 
결과
 
product total_sales
Laptop 3700
Phone 3500
NULL 7200
 
설명: NULL은 전체 총합을 의미합니다. 제품별 합계 + 전체 합계를 한 번에 볼 수 있습니다.
 
 
요약
 
개념 설명
GROUP BY 특정 컬럼으로 그룹화
HAVING 그룹화된 결과에 조건을 거는 절
다중 그룹화 두 개 이상 컬럼으로 그룹화
JOIN + GROUP BY 여러 테이블 연결 후 그룹화
ROLLUP 그룹별 합계 + 전체 합계까지 한 번에 출력
 
 
 
 
 
[[category:oracle]]
 
==== [[WITH 절]] ====
==== [[SQL 조인]] ====
=== [[INSERT 구문]] ===
=== [[UPDATE 구문]] ===
=== [[MERGE 구문]] ===
 
== [[SQL 활용]] ==
=== [[오라클SQL 과 안시SQL]] ===
=== [[SQL 실행원리 와 과정 ]]===
=== [[최적의 SQL 작성법]] ===
=== [[스칼라 인라인뷰 서브쿼리|서브쿼리(스칼라/인라인뷰/서브쿼리)]]===
 
=== [[원도우 함수]]===
=== [[집계함수 (aggregate function)]]===
 
=== [[그룹 함수]]===
=== [[인덱스]] ===
=== [[CONNECT BY 절]] ===
=== [[LATERAL]] ===
== [[PL/SQL 기초]] ==
=== [[함수]] ===
=== [[프로시져]] ===
=== [[패키지]] ===
=== [[트리거]] ===
== [[SQL 고급]] ==
 
=== [[ORACLE DBA 30일 학습]] ===

2025년 7월 28일 (월) 10:04 기준 최신판

dbstudy_iconx1.png

Welcome To DB STUDY - 2025.8월.3(일요일)

dbstudy_logo.jpg

 emoji_objects오라클: 34 건 , PostgreSql : 1 건 , MySQL: 0 건, LINUX: 0 건

ORACLE

오라클 SQL 30일 학습

  1. SQL 기본
    1. 데이터 베이스 용어 설명
    2. 현업에서 사용하는 업무용어
    3. 컬럼 데이터 유형
  2. SQL 실행
    1. 테이블 생성 과 데이터입력
    2. SELECT 기본 구문 작성 순서
      1. GROUP BY 절
      2. WITH 절
      3. SQL 조인
    3. INSERT 구문
    4. UPDATE 구문
    5. DELETE 구문
    6. MERGE 구문
    7. CREATE TABLE 구문
    8. ALTER TABLE 구문
    9. DROP TABLE 구문
    10. TRUNCATE TABLE 구문
  3. SQL 활용
    1. 오라클SQL 과 안시SQL
    2. SQL 실행원리 와 과정
    3. 최적의 SQL 작성법
    4. 서브쿼리(스칼라/인라인뷰/서브쿼리)
    5. 오라클 내부함수
    6. 윈도우 함수(분석 함수)
    7. 집계함수 (aggregate function)
    8. 그룹 함수
    9. 인덱스
    10. CONNECT BY 절
    11. LATERAL
  4. PL/SQL 기초
    1. 함수
    2. 프로시져
    3. 패키지
    4. 트리거
  5. SQL 고급
    1. 정규표현식(regular expression)
    2. 전체 텍스트 검색 match
    3. 테이블 샘플링 (Table Sampling)
    4. 임시 테이블 (Temporary Tables)
    5. 동적 SQL (Dynamic SQL)

ORACLE SQL 튜닝

성능을 고려한 설계

효율적인 SQL 작성법

튜닝 환경 구축

  1. XPLAN 사용법
  2. REAL PLAN 사용법
  3. SQL 트레이스 방법

인덱스 설계

  1. 인덱스 아키텍처
  2. 인덱스 종류
  3. 엑세스 패스

효율적인 조인 방법

튜닝 힌트

병렬 쿼리 튜닝

ORACLE 튜닝 대상 조회

파라미터 설계


ORACLE 백업 과 복구


DBA_수행_방법론_(공공/대기업_SI_프로젝트)

개요

단계별 수행 방법론

분석 단계

산출물

주요 작업 TASK

설계 단계

산출물

주요 작업 TASK

구축 단계

산출물

주요 작업 TASK

테스트 단계

산출물

주요 작업 TASK

전개 단계

산출물

주요 작업 TASK