[SQL] SUM and COUNT (GROUP BY, HAVING 사용해보자)

MJ·2022년 12월 15일
0

Show the total population of the world.

SELECT SUM(population)
FROM world

List all the continents - just once each.

SELECT DISTINCT continent
FROM world
  continent
  Africa
  Asia
  Caribbean
  Eurasia
  Europe
  North America
  Oceania
  South America

**Give the total GDP of Africa

**

SELECT SUM(gdp)
FROM world
WHERE continent='Africa'

How many countries have an area of at least 1000000

SELECT COUNT(name)
FROM world
WHERE area>=1000000

What is the total population of ('Estonia', 'Latvia', 'Lithuania')

SELECT SUM(population)
FROM world
WHERE name IN ('Estonia','LAtvia','Lithuania')

For each continent show the continent and number of countries.

SELECT continent, COUNT(name)
FROM world
GROUP BY continent
  continent	total
  Africa	53
  Asia	47
  Caribbean	11
  Eurasia	2
  Europe	44
  North America	11
  Oceania	14
  South America	13

For each continent show the continent and number of countries with populations of at least 10 million.

SELECT continent, COUNT(name) as total
FROM world
WHERE population>=10000000
GROUP BY continent 
  continent	total
  Africa	29
  Asia	26
  Caribbean	2
  Eurasia	1
  Europe	14
  North America	4
  Oceania	1
  South America	8

List the continents that have a total population of at least 100 million.

SELECT DISTINCT continent
FROM world
GROUP BY continent HAVING SUM(population)>=100000000
  continent
  Africa
  Asia
  Eurasia
  Europe
  North America
  South America

SQL 집계함수

  • 집계함수란?
    - 집계함수는 여러 행으로부터 하나의 결괏값을 반환하는 함수이다.

    • SELECT 구문에서만 사용된다.
    • 열(column)끼리 연산을 수행한다.
  • COUNT
    - 특정 열의 행의 개수를 세는 함수

    • DISTINCT 명령어를 이용하면 중복을 제외한 값을 개수 구할수 있다.
    • ex) SELECT COUNT(DISTINCT continent) FROM world;
  • MIN/MAX
    - 최솟값과 최댓값을 구하는 함수이다.
    - 사용법은 COUNT와 동일

  • AVG/SUM
    - AVG 함수는 선택한 열의 평균을 계산하며 SUM은 선택한 열의 합을 계산한다.

    • 숫자인 값에서만 연산 가능하다.
    • NULL값은 무시한다.

GROUP BY

GROUP BY절은 데이터들을 작은 그룹으로 분류, 소그룹에 대한 항목별로 통계정보를 얻을때 추가로 사용된다.

GROUP BY 절을 통헤 소그룹을 정한 후, SELECT 절에 집계 함수를 사용한다.

HAVING

WHERE 절과 비슷하지만 GROUP BY 절에 의해 만들어진 소그룹에 대한 조건이 적용된다.

HAVING 절은 SELECT 절에 사용되지 않은 칼럼이나 집계함수가 아니더라도 GROUP BY 절의 기존 항목이나 소그룹의 집계 함수를 이용한 조건을 표시할 수 있다.

0개의 댓글