[패스트캠퍼스]SQL 강의 따라하기(데이터 그룹화하기)-실습_02😎

Jaewoo Back·2023년 7월 16일
0
post-thumbnail

데이터를 그룹화해서 통계를 내보자

테이블 만들기

DROP DATABASE IF EXISTS pokemon;
CREATE DATABASE pokemon;
USE pokemon;
CREATE TABLE mypokemon (
number int,
name varchar(20),
type varchar(10),
height float,
weight float
);
INSERT INTO mypokemon (number, name, type, height, weight)
VALUES (10, 'caterpie', 'bug', 0.3, 2.9),
(25, 'pikachu', 'electric', 0.4, 6),
(26, 'raichu', 'electric', 0.8, 30),
(125, 'electabuzz', 'electric', 1.1, 30),
(133, 'eevee', 'normal', 0.3, 6.5),
(137, 'porygon', 'normal', 0.8, 36.5),
(152, 'chikoirita', 'grass', 0.9, 6.4),
(153, 'bayleef', 'grass', 1.2, 15.8),
(172, 'pichu', 'electric', 0.3, 2),
(470, 'leafeon', 'grass', 1, 25.5);


✏️MISSION (1)

포켓몬의 타입 별 키의 평균을 가져와 주세요.

SELECT type, AVG(height)
FROM mypokemon
GROUP BY type;


✏️MISSION (2)

포켓몬의 타입 별 몸무게의 평균을 가져와 주세요.

SELECT type, AVG(weight)
FROM mypokemon
GROUP BY type;


✏️MISSION (3)

포켓몬의 타입 별 키의 평균과 몸무게의 평균을 함께 가져와 주세요.

SELECT type, AVG(height), AVG(weight)
FROM mypokemon
GROUP BY type;


✏️MISSION (4)

키의 평균이 0.5 이상인 포켓몬의 타입을 가져와 주세요.

SELECT type
FROM mypokemon
GROUP BY type
HAVING AVG(height) >= 0.5;


✏️MISSION (5)

몸무게의 평균이 20 이상인 포켓몬의 타입을 가져와 주세요.

SELECT type
FROM mypokemon
GROUP BY type
HAVING AVG(weight) >= 20;


✏️MISSION (6)

포켓몬의 타입 별 번호(number)의 합을 가져와 주세요.

SELECT type, SUM(number)
FROM mypokemon
GROUP BY type;


✏️MISSION (7)

키가 0.5 이상인 포켓몬이 포켓몬의 type 별로 몇 개씩 있는지 가져와 주세요.

SELECT type, COUNT(1)
FROM mypokemon
WHERE height >= 0.5
GROUP BY type;
  • WHERE 조건문 사용해야함 - HAVING 조건문사용해서 오류나왔다.

✏️MISSION (8)

포켓몬 타입 별 키의 최솟값을 가져와 주세요.

SELECT type, MIN(height)
FROM mypokemon
GROUP BY type;


✏️MISSION (9)

포켓몬 타입 별 몸무게의 최댓값을 가져와 주세요

SELECT type, MAX(weight)
FROM mypokemon
GROUP BY type;


✏️MISSION (10)

키의 최솟값이 0.5보다 크고 몸무게의 최댓값이 30보다 작은 포켓몬 타입을 가져와 주세요.

SELECT type
FROM mypokemon
GROUP BY type
HAVING MIN(height) > 0.5 AND MAX(weight) < 30;


profile
https://blog.naver.com/jaewoo2_25

0개의 댓글