Posts MySQL 기초(3)
Post
Cancel

MySQL 기초(3)

1. Group By


1.1 Syntax

1
2
3
SELECT 컬럼
FROM 테이블
GROUP BY 컬럼
  • Group By는 여러개의 동일한 데이터를 가지는 특정 컬럼을 합쳐주는 역할을 하는 명렁어
  • count, min, max, sum, avg의 그룹함수가 있음


1
USE world
  • World 데이터 베이스로 이동
  • World 데이터 베이스에는 city, country, countrylanguage 3개의 테이블이 있는 데이터 베이스
  • 실습을 위해 생성한것이니, 현재 페이지에서는 확인 할수 없음


1.2 Count

1
2
3
SELECT countrycode, COUNT(countrycode)
FROM city
GROUP BY countrycode
  • city 테이블의 countrycode를 묶고 각 코드마다 몇개의 데이터가 있는지 확인


1
2
SELECT COUNT(DISTINCT(language)) as language_count
FROM countrylanguage
  • countrylanguage테이블에서 전체 언어가 몇개 있는지 구하는 코드
  • as를 주어 컬럼에 별칭을 주었음


1.3 Max

1
2
3
SELECT continent, MAX(population) as Population, MAX(gnp) as GNP
FROM country
GROUP BY continent
  • 대륙별 최대 인구수와 GNP 값을 조회


1.4 Min

1
2
3
4
SELECT continent, MIN(population) as Population, MIN(gnp) as GNP
FROM country
WHERE GNP != 0 AND Population != 0
GROUP BY continent
  • 대륙별 최소 인구수와 최소 GNP 조회함
  • Where 조건으로 GNP와 인구수가 0이 아닌 데이터 중에서 조회


1.5 Sum

1
2
3
4
SELECT continent, SUM(population) as Population, SUM(gnp) as GNP
FROM country
WHERE GNP != 0 AND Population != 0
GROUP BY continent
  • 대륙별 총 인구수와 총 GNP를 조회
  • Where 조건으로 GNP와 인구수가 0이 아닌 데이터 중에서 조회


1.6 Avg

1
2
3
4
5
SELECT continent, AVG(population) as Population, AVG(gnp) as GNP
FROM country
WHERE GNP != 0 AND Population != 0
GROUP BY continent
ORDER BY Population DESC
  • 대륙별 평균 인구수와 평균 GNP 결과를 인구수 내림차순으로 정렬


2. Having


2.1 Having

1
2
3
4
SELECT 컬럼1, 컬럼2, 컬럼3
FROM 테이블
GROUP BY 컬럼1
HAVING 조건
  • Having은 Group By에서 반환되는 결과에 조건을 주는것
  • Where과 똑같지만, Group By 뒤에는 Having이 와야함


1
2
3
4
SELECT continent, SUM(population) as Population
FROM country
GROUP BY continent
HAVING Population > 500000000
  • 대륙별 전체 인구를 조회하고 그중 5억 이상인 대륙만 조회


1
2
3
4
5
6
7
SELECT continent, AVG(population) as Population, AVG(gnp) as GNP,
       AVG(gnp) / AVG(population) * 1000 as AVG
FROM country
WHERE GNP != 0 AND Population != 0
GROUP BY continent
HAVING AVG > 0.01
ORDER BY AVG DESC
  • 대륙별 평균 인구수, 평균 GNP, 1인당 GNP를 조회한 결과를 GNP가 0.01 이상인 데이터를 조회하고 1인당 GNP를 내림차순으로 정렬
This post is licensed under CC BY 4.0 by the author.