Aggregates란?
- 대부분의 애플리케이션은 데이터베이스에서 데이터를 가져와야 한다. Aggregate를 사용하면 해당 유형의 쿼리를 시각적인 방식으로 만들 수 있다.
- Aggregate는 데이터를 검색, 필터링, 정렬, 집계 등 다양한 방식으로 처리하기 위한 데이터 집합 관리 기능
- Aggregate는 SQL의 SELECT문과 유사한 방식으로 작동한다. 즉, 데이터베이스 테이블에서 데이터를 검색하고 필터링하고 집계할 수 있다. Aggregate를 사용하여 데이터를 가져오면 에플레키에션에서 사용할 수 있는 개체 컬렉션으로 반환된다.
- SUM, AVG, MIN, MAX등과 같은 집계함수를 사용하여 숫파질드의 합계,평균,최소값,최대값 등을 계산 가능. 또한 조인, 필터링, 정렬, 그룹화 등과 같은 다양한 작업을 수행
Aggregate편집기
- Aggregate편집기는 데이터베이스 쿼리를 시각적으로 정의할 수 있다
- 편집기 상단에는 다양한 데이터 소스를 추가하고, 필터를 만들고, 정렬을 정의하고, 개발중에 쿼리를 테스트할 수 있는 4개의 텝이 있다
- 편집기는 Excel 스프레드시트와 약간 비슷해 보이고 SQL에 대한 자세한 지식이 필요하지 않기 때문에 비교적 쉽게 만들고 유지 관리할 수 있다.
Sources
- 소스탭을 확장하여 소스 엔터티를 표시할 수 있다.
- 소스는 데이터가 검색되는 위치를 결정한다.
- Aggreagte는 소스로 둘 이상의 엔티티를 지원하지만 이 예에서는 Customer 엔티티만 존재
Filter
- 필터는 모든 고객을 가져오는 대신 이름 길이가 특정 값보다 큰 고객만 가져오기로 결정한 경우 처럼 필터 추가 가능
- 필터를 추가하면 미리보기 데이터가 자동으로 새로 고쳐지고 모든 필터와 일치하는 레코드만 표시
- 여러 필터를 추가할 수 있으며 반환된 레코드는 "모든 필드에 대해 true"로 평가되는 레코드만 반환
- =(같음) , <>(같지않음), and, or, ... 과 같은 일종의 논리연산자 존재
- 내장 함수 중 일부를 사용하여 날짜나 다른 값을 조작할 수 있다.
Sorting
- 데이터를 필터링한 후 일부 정렬을 원할 수 도있다, 정렬탭으로 이동하여 하나 이상의 정렬을 추가 가능
- 정렬은 오름차순 또는 내림차순으로 수행할수 있으므로 값을 늘리거나 줄일 수 있다.
- 여러 정렬 추가 가능(정렬이 정의되는 순서가 중요)
Test Value
- 테스트 값 탭으로 이동하면 집계 내에서 사용중인 모든 변수가 입력 필드로 표시
- 해당 입력 필드에 값을 지정하면 쿼리를 평가하고 아래의 데이터 미리 보기를 새로 고친다.
- 이 테스트 값은 애플리케이션 내에서 실제로 실행하게 될 것과 아무 관련이 없음(편집기가 열려 있는 동안 특정 경우에 해당 출력이 무엇인지 확인하기 위한 것)
Aggreagates as SQL
- Aggregates를 생성하는데 sql 지식이 필요하지 않더라도 Aggregate는 SELECT SQL쿼리로 변환된다.(컴파일 단계)
- Sources 탭에 정의된 모든 항목은 FROM 절에서 끝난다.
- 필터는 WHERE절에 AND로 연결된다
- 정렬 기준은 Aggregate에 정의된 순서대로 ORDER BY절로 변환된다.
참고
https://www.outsystems.com/ko-kr/training/Learn_Lesson_View.aspx?LessonId=2049&LessonName=aggregates-outputs-and-properties&
'로우코드(Lowcode) > outsystems' 카테고리의 다른 글
outsystems - How to Use the List and ListItem (0) | 2023.05.05 |
---|---|
outsystems - How To Fetch Data in an Aggregate and filter Data and SORT Data and Test Values (0) | 2023.05.04 |
outsystems - 반복문생성방법 (0) | 2023.04.28 |
outsystems - 조건부 경로 생성 방법 (0) | 2023.04.28 |
outsystems - Logic 생성 및 사용방법 (0) | 2023.04.28 |