MySQL 기초

그룹핑 (group by)

GROUP BY

특정 칼럼을 기준으로 데이터를 그룹핑함

문법

SELECT * FROM 테이블명 GROUP BY 그룹핑 할 기준 칼럼명

예제

DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
  `id` tinyint(4) NOT NULL,
  `name` char(4) NOT NULL,
  `sex` enum('남자','여자') NOT NULL,
  `address` varchar(50) NOT NULL,
  `distance` INT NOT NULL,
  `birthday` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


INSERT INTO `student` VALUES (2, '박재숙', '남자', '서울',  10, '1985-10-26 00:00:00');
INSERT INTO `student` VALUES (1, '이숙경', '여자', '청주', 200, '1982-11-16 00:00:00');
INSERT INTO `student` VALUES (3, '백태호', '남자', '경주', 350, '1989-2-10 00:00:00');
INSERT INTO `student` VALUES (4, '김경훈', '남자', '제천', 190, '1979-11-4 00:00:00');
INSERT INTO `student` VALUES (8, '김정인', '남자', '대전', 200, '1990-10-1 00:00:00');
INSERT INTO `student` VALUES (6, '김경진', '여자', '제주', 400, '1985-1-1 00:00:00');
INSERT INTO `student` VALUES (7, '박경호', '남자', '영동', 310, '1981-2-3 00:00:00');
select sex from student group by sex;
select sex,sum(distance), avg(distance) from student group by sex;

댓글

댓글 본문
작성자
비밀번호
  1. canine
    group by는 sql 문법입니다.
    phpmyadmin은 이러한 문법들을 버튼같은 사용자 위주의 UI로 사용할 수 있게 (타이핑 하는 것 대신) 하는 것인데요,
    phpmyadmin에 보시면 이러한 기능을 하는 버튼이 있을거에요!
    만약에 없다면 똑같이 terminal환경에서 문법을 치듯이 하는 창이 있으니 여기에 타이핑 해보시면 될거에요
    대화보기
    • 안녕하세요, 컴퓨터 배경지식이 없는 상태에서 듣다보니 기초적인 질문들이 생기네요!
      리눅스로 쓰지 못하고 phpmyadmin에서만 실습하고 있는데요,
      방금 이런 group by 같은 경우엔 phpmyadmin의 특정 기능이 이 역할을 대신하나요?
      늘 정말정말 감사하게! 잘 보고 있습니다.
    • JustStudy
      고맙습니다
    • 이주환
      2016. 04. 12
      정독하고갑니다.
      그룹핑은 특정정보를 활용할때 사용하기에 좋을것 같네요.
    • 윤희진
      기초적인것을 복습 계속하니까 좋네요
    • WayneKing
      보고 보고 보고~
    • 육점이
      이걸 보니 이제 데이터베이스 관리가 어떤점이 중요한 부분인지 구체적으로 점점 깨닫게 되네요!! 무궁무진할 것을 기대합니다. 항상 감사합니다.
    • 샤핀
      sum(), avg()는 그 행의 값을 가지고 더하거나 나누는 기능을 가진 다는 점이
      프로그래밍에서 함수랑 비슷하네요.
      database에서 sum() 같은 건 뭐라고 부르나요?
    • 염준호
      음..생각보다 이런저런 기능이 많네여
      ㅎㅎㅎ
      재미나게 보고 따라해보았습니다.

      감사합니다.
    • 도움 될까 해서 올리는데요 예제소스 한번에 선택 안되시면 처음부터 되는데까지 드래그 하시고 shift버튼 누른상태로 화살표 클릭하고 나머지 부분 까지 클릭해주시면 한번에 다 선택되네요 ^^
    • kipid
      SELECT DISTINCT `column_name1`,`column_name2` FROM `table_name`;

      열에 어떠한 데이터들이 있는지만 궁금한거라면 SELECT DISTINCT를 쓰는게 덜 헷갈릴듯 합니다.
      GROUP BY는 sum, avg 같은 연산쓸때.
    • Starmomo
      [GROUPing] 1. 원자 데이타의 단순화, 2. 그룹핑한 원자들의 합, 평균 등을 추출함.
    버전 관리
    egoing
    현재 버전
    선택 버전
    graphittie 자세히 보기