집계함수중 자주 사용되는 함수는 SUM, COUNT, AVG, MIN, MAX 등이 있다.

SUM

Sum 함수는 해당하는 값들을 모두 더해서 출력해준다.

where FeeType = 'Gym'으로 FeeType이 Gym인 데이터에 대한 합을 출력했다.

AVG MIN MAX

AVG MIN MAX는 각각 평균, 최소, 최대값을 계산한다.

해당 함수는 데이터 타입이 numeric일경우에만 사용 가능하고, varchar와 같이 문자일경우에는 사용 불가하다.

 

COUNT

count는 선택된 행의 개수를 반환한다.

count(선택한 열)의 형태를 가진다.

위 테이블은 where의 조건을 만족하는 행의 개수를 반환하는 예시이다.

위 예시는 distinct를 이용해 중복되는 경우는 제외하고 카운트를 반환하는 예시이다.

중복을 제거하면 Gym, Lunch, Trip 세가지이므로 3을 반환한다.

Distinct는 출력에서 중복된 값을 제거한다.

SongTitles 테이블에서 Artist열만 가져온다고 했을 때, 중복되는 데이터가 존재한다.

이 때 distinct로 중복 데이터를 제거해줄 수 있다.

'DB > 관계형 DB' 카테고리의 다른 글

데이터 그룹화(Group By)  (0) 2021.04.22
데이터 요약 - 집계 함수  (0) 2021.04.15
WHERE절의 조건부 논리(case)  (0) 2021.04.15
Order By 조건부 논리(case)  (0) 2021.04.15
검색형 CASE  (0) 2021.04.15
CustomerId Sex Age Income
1 M 55 80000
2 F 25 65000
3 M 35 40000
4 F 42 90000
5 F 27 25000

해당 테이블을 복합적인 조건을 만족하는 항목만 선택해서 출력할것이다.

성별이 남성인 경우, 50세 이상이고 수입이 75000이상인 경우만, 성별이 여성인 경우, 35세 이상이고 수입이 60000이상인 경우만 출력한다. 성별과 나이 조건을 충족하지 못한 경우에는 수입이 50000이상인 경우만 출력한다.

SELECT *
  FROM CustomerList
  WHERE Income >
  CASE
    WHEN Sex = 'M' AND Age >= 50 THEN 75000
    WHEN Sex = 'F' AND Age >= 35 THEN 60000
    ELSE 50000
  END

WHERE Income >의 우항에 들어갈 수치를 case를 통해 결정한다. 그리고 각 항목이 이를 충족할 때 출력한다.

CustomerID Sex Age Income
1 M 55 80000
2 F 25 65000
4 F 42 90000

 

'DB > 관계형 DB' 카테고리의 다른 글

데이터 요약 - 집계 함수  (0) 2021.04.15
데이터 요약 - 중복제거(Distinct)  (0) 2021.04.15
Order By 조건부 논리(case)  (0) 2021.04.15
검색형 CASE  (0) 2021.04.15
CASE  (0) 2021.04.15

Order by로 정렬할 때 case문을 활용해 정렬할 수 있다.

Country로 1차적으로 오름차순으로 정렬 후, case로 US, CA인지에 따라 2차적으로 정렬을 한번 더 해준다.

 

'DB > 관계형 DB' 카테고리의 다른 글

데이터 요약 - 중복제거(Distinct)  (0) 2021.04.15
WHERE절의 조건부 논리(case)  (0) 2021.04.15
검색형 CASE  (0) 2021.04.15
CASE  (0) 2021.04.15
패턴 매칭(Like)/ 와일드카드  (0) 2021.04.14

검색형 case의 일반적인 형태는 다음과 같다.

case
when [condition A] then resultA
when [condition B] then resultB
...
else [defaultResult]
end

when 다음으로 참 거짓이 되는 조건을 지정하고, 해당 조건이 참이면 then을 실행한다.

GroceryID Fruit Vegetable Spice Beverage Description
1 X       Apple
2 X       Orange
3     X   Mustard
4   X     Carrot
5       X Water

위와 같은 테이블이 있을 때, 검색형 case로 카테고리를 정리해볼것이다.

select
  case
    when Fruit = 'X' then 'Fruit'
    when Vegetable = 'X' then 'Vegetable'
    else 'Other'
  end as 'Category',

  [Description]

from Groceries

해당 코드는 다음과 같이 출력된다.

Category Description
Fruit Apple
Fruit Orange
Other Mustard
Vegetable Carrot
Other Water

Fruit 열이 X값을 가지고 있을 경우, category에 Fruit을, Vegetable 열이 X값을 가질경우 Vegetable을, 그 외에는 Other를 출력하게 했다.

 

'DB > 관계형 DB' 카테고리의 다른 글

WHERE절의 조건부 논리(case)  (0) 2021.04.15
Order By 조건부 논리(case)  (0) 2021.04.15
CASE  (0) 2021.04.15
패턴 매칭(Like)/ 와일드카드  (0) 2021.04.14
선택 기준 (WHERE, TOP)  (0) 2021.04.08

CASE는 if나 switch문과 비슷한 역할을 한다.

데이터를 불러올 때, 해당 데이터를 가공해서 가져올 수 있다.

Groceries 테이블에서 CategoryCode항목의 데이터들을 변환해서 가져올것이다.

F->Fruit, V->Vegitable, 이외의 것들->Other

case문을 시작하고, when [기존 데이터] then [바꿀 데이터]의 형태를 사용한다.

case문은 end로 끝마친다.

 

case문은 기호나 ID 등을 의미있는 설명으로 바꿔주는데에 유용하게 사용된다.

또한 데이터를 축약어 또는 ID로 저장하는 경우 용량이 대폭 줄어드는 장점이 있는데, case문이 이 축약어들을 변환해줄 수 있다.

'DB > 관계형 DB' 카테고리의 다른 글

Order By 조건부 논리(case)  (0) 2021.04.15
검색형 CASE  (0) 2021.04.15
패턴 매칭(Like)/ 와일드카드  (0) 2021.04.14
선택 기준 (WHERE, TOP)  (0) 2021.04.08
데이터 정렬(ORDER BY)  (0) 2021.04.08

+ Recent posts