일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 공개서적
- 주상복합용지 분양
- 라이브러리 vs 패키지
- Google vs OpenAI
- PostgreSQL
- chatgpt vs bard
- 전세보증보험
- 가장 많이 사용되는 파이썬 라이브러리
- 상업시설용지 분양
- 다주택임대
- 가장 인기있는 파이썬 라이브러리
- Python
- Google vs MicorSoft
- 갤럭시탭 with Pen
- bard 100% 신뢰금지
- 가장 인기있는 파이썬 패키지
- 데이터 리터러시
- 종합소득세
- chatgpt 100% 신뢰금지
- 2룸 오피스텔 투자
- 임대소득외 추가소득이 있을 경우
- 파이썬 TypeError
- 오라클 데이터베이스 내장함수
- 주택임대사업자
- 나는 어디로?
- 오피스텔투자
- 종합과세
- robux
- 소형주택 세액감면
- 가장 많이 사용되는 파이썬 패키지
All thing of the world!
Oracle LISTAGG 설명 : 오라클 함수 본문
1. 함수의 목적
Oracle LISTAGG는 ORDER BY 절에 지정된 각 그룹 내의 데이터를 열의 값으로 병합한다.
■ 단일 세트 집계 함수의 LISTAGG는 모든 행에 대해 작업하고 단일 출력 행을 리턴한다.
■ 그룹 집합 집계로서의 LISTAGG는 GROUP BY 절에 정의된 각 그룹에 대해 작업하고 결과 행을 반환한다.
■ 분석 함수로서의 LISTAGG는 query_partition_clause를 기반으로 쿼리 결과 세트를 그룹으로 분할한다.
2. 샘플을 통한 개념 퀵뷰
hr.employees 테이블의 Department_id=30에 있는 모든 직원을 hire_date, last_name으로 정렬하여 나열한다.
SELECT LISTAGG(last_name, '; ')
WITHIN GROUP (ORDER BY hire_date, last_name) "Emp_list",
MIN(hire_date) "Earliest"
FROM employees
WHERE department_id = 30;
Emp_list Earliest
------------------------------------------------------------ ---------
Raphaely; Khoo; Tobias; Baida; Himuro; Colmenares 07-DEC-02
3. 사용방법
4. 함수 PARAMETER 설명
반환값의 데이터 타입은 VARCHAR2이며, measure_expr이 RAW일 경우에만 리턴 데이터타입도 RAW가 된다.
[measure_expr]
모든 표현식이 입력 파라미터로 가능하다. null값은 무시된다.
[delimiter]
값을 병합시 값과 값사이에 들어갈 자열을 정의한다. 정의하지 않으면 null이 디폴트가 된다.
[order_by_clause]
order_by_clause는 연결될 값의 순서를 결정한다.
5. 다양한 샘플표현
example1) 그룹 세트 집계 예로, employees 테이블의 각 부서 ID에 대해 해당 부서의 직원을 hire_date 순으로 나열한다.
SELECT department_id "Dept.",
LISTAGG(last_name, '; ') WITHIN GROUP (ORDER BY hire_date) "Employees"
FROM employees
GROUP BY department_id
ORDER BY department_id;
example2) employees테이블에서 2003 년 9 월 1 일 이전에 고용된 각 직원에 대해 직원의 부서, 고용 날짜 및 해당 부서의 다른 모든 직원도 2003 년 9 월 1 일 이전에 고용됬다면 Emp_list에 같이 조회한다.
SELECT department_id "Dept", hire_date "Date", last_name "Name",
LISTAGG(last_name, '; ') WITHIN GROUP (ORDER BY hire_date, last_name)
OVER (PARTITION BY department_id) as "Emp_list"
FROM employees
WHERE hire_date < '01-SEP-2003'
ORDER BY "Dept", "Date", "Name";
'IT > Oracle DBMS' 카테고리의 다른 글
Oracle ASCIISTR 설명 : 오라클 함수 (0) | 2021.04.01 |
---|---|
Oracle NTH_VALUE 설명 : 오라클 함수 (0) | 2021.04.01 |
Oracle PERCENTILE_DISC 설명 : 오라클 함수 (0) | 2021.04.01 |
Oracle COALESCE 설명 : 오라클 함수 (0) | 2021.03.31 |
Oracle REGEXP_REPLACE 설명 : 오라클 함수 (0) | 2021.03.31 |