티스토리 뷰



MariaDB(MySQL) Group By 사용하기



Schema:


CREATE TABLE `group_test`.`example` (

  `seq` INT UNSIGNED NOT NULL AUTO_INCREMENT,

  `category1` VARCHAR(45) NOT NULL,

  `category2` VARCHAR(45) NOT NULL,

  `title` VARCHAR(45) NOT NULL,

  `type` ENUM('단어', '문장') NOT NULL DEFAULT '단어',

  `description` TEXT NOT NULL,

  PRIMARY KEY (`seq`)

);




Records:


1 대분류1 소분류1 분류001 단어 설명

2 대분류1 소분류1 분류002 단어 설명

3 대분류1 소분류1 분류003 단어 설명

4 대분류2 소분류1 분류004 단어 설명

5 대분류2 소분류1 분류005 단어 설명

6 대분류2 소분류2 분류006 단어 설명

7 대분류2 소분류1 분류007 단어 설명

8 대분류1 소분류2 분류008 단어 설명

9 대분류3 소분류2 분류009 단어 설명

10 대분류3 소분류1 분류010 단어 설명

11 대분류3 소분류3 분류011 단어 설명

12 대분류3 소분류2 분류012 단어 설명

13 대분류3 소분류3 분류013 단어 설명




예제들


예제1


SELECT category1, COUNT(seq) FROM group_test.example GROUP BY category1;


1 대분류1 소분류1 분류001 단어 설명

4 대분류2 소분류1 분류004 단어 설명

9 대분류3 소분류2 분류009 단어 설명



SELECT * FROM group_test.example GROUP BY category1, category2;


1 대분류1 소분류1 분류001 단어 설명

8 대분류1 소분류2 분류008 단어 설명

4 대분류2 소분류1 분류004 단어 설명

6 대분류2 소분류2 분류006 단어 설명

10 대분류3 소분류1 분류010 단어 설명

9 대분류3 소분류2 분류009 단어 설명

11 대분류3 소분류3 분류011 단어 설명




예제2 갯수 세기:


SELECT category1, COUNT(seq) FROM group_test.example GROUP BY category1;


대분류1 4

대분류2 4

대분류3 5



SELECT category1, COUNT(seq) FROM group_test.example WHERE category1 = '대분류1';


대분류1 4


SELECT category1, COUNT(seq) FROM group_test.example WHERE category1 = '대분류2';


대분류2 4


SELECT category1, COUNT(seq) FROM group_test.example WHERE category1 = '대분류3';


대분류3 5