📕 들어가며

이번 글에서는

GROUP BY 문법에 대해서 알아보고

관련된 문제를 풀어보겠습니다.











📕 데이터 준비

CREATE DATABASE testdb;

USE testdb;

DROP TABLE IF EXISTS member;
DROP TABLE IF EXISTS product;

CREATE TABLE member(  
    id BIGINT AUTO_INCREMENT NOT NULL PRIMARY KEY,  
    member_id VARCHAR(30),  
    name VARCHAR(10),  
    address VARCHAR(10),  
    phone_number VARCHAR(20),  
    create_date datetime,  
    update_date datetime  
);

CREATE TABLE product(  
    id BIGINT  NOT NULL AUTO_INCREMENT PRIMARY KEY,  
    name VARCHAR(20),  
    qty INT,  
    price INT,  
    create_date datetime,  
    update_date datetime  
);


INSERT INTO `testdb`.`member`
( `member_id`, `name`, `address`, `phone_number`, `create_date`, `update_date`)
VALUES
('member1', 'A', 'Seoul', '010-1111-1111', NOW(), NOW()),
('member2', 'B', 'Seoul', '010-1111-2222', NOW(), NOW()),
('member3', 'C', 'Daegu', '010-1111-3333', NOW(), NOW()),
('member4', 'D', 'Daegu', '010-1111-4444', NOW(), NOW()),
('member5', 'D', 'Daegeon', '010-1111-5555', NOW(), NOW()),
('member6', 'E', 'Daegeon', '010-2222-1111', NOW(), NOW()),
('member7', 'F', 'Daegeon', '010-2222-1111', NOW(), NOW()),
('member8', 'F', 'Seoul', '010-2222-2222', NOW(), NOW());


INSERT INTO `testdb`.`product`
(`name`, `qty`, `price`, `create_date`, `update_date`)
VALUES 
('carrot', 10, 1000, NOW(), NOW()),
('apple', 100, 500, NOW(), NOW()),
('pear', 30, 800, NOW(), NOW()),
('orange', 50, 800, NOW(), NOW()),
('honey', 10, 3000, NOW(), NOW()),
('cabage', 15, 3000, NOW(), NOW()),
('pine', 20, 5000, NOW(), NOW()),
('mellon', 10, 10000, NOW(), NOW());






📕 기초지식


✏️ GROUP BY

SQL에서 특정 컬럼의 값을 기준으로 
집계함수 SUM, AVG, COUNT, MAX, MIN
를 사용하기 위해서는 

FROM 절 뒤에 

GROUP BY '집계함수 기준 컬럼' 를 붙여줘야 합니다.) '컬럼1'의 값을 기준으로 그룹화한 후,
    각 그룹 내에서 '컬럼2' 값들의 합을 구함.

SELECT SUM('컬럼2') FROM '테이블' GROUP BY '컬럼1'





















📕 WHERE절 연습 문제

문제 1

product 테이블에 있는 모든 가격의 총합을 가져옵니다.

문제 1 정답











문제 2

proudct 테이블에 있는 과일 갯수(qty)의 평균치를 구합니다.

문제 2 정답











문제 3

proudct 테이블에서 qty에 대응되도록 price의 갯수를 가져옵니다.

문제 3 정답
































문제1 정답

SELECT 
    SUM(price)
FROM 
    product;

돌아가기





















문제2 정답

SELECT 
    AVG(qty)
FROM 
    product;

돌아가기





















문제3 정답

SELECT 
    qty, 
    COUNT(price), 
FROM 
    product
GROUP BY qty;

돌아가기





















profile
1.01^365

0개의 댓글