# 1. 그룹화

GROUP BY 명령어를 통해 특정 컬럼을 기준으로 그룹화 할 수 있습니다.

그룹화를 하면 조회된 데이터를 통계를 내기 위한 집계함수( avg, sum 등.. )를 사용하기에 용이해집니다.

 

# Group By를 통해 컬럼의 값이 같은 것 끼리 하나로 묶어준다 ==> ANIMAL_TYPE으로 묶어서 고양이와 강아지가 몇마리인지 정리됨

# 이때, SELECT ANIMAL_TYPE, Count(ANIMAL_TYPE) as count FROM ANIMAL_INS GROUP BY ANIMAL_TYPE  만 해도 정답이다 왜냐하면 사전순으로 조회가 되기때문에 그렇다. 그러나 문제에 맞게 구현을 하려면 ORDER BY CASE 를 사용해주면 된다.

1
2
3
4
5
6
7
-- 고양이와 개는 몇 마리 있을까
SELECT ANIMAL_TYPE, Count(ANIMAL_TYPE) as count FROM ANIMAL_INS GROUP BY ANIMAL_TYPE 
ORDER BY 
CASE ANIMAL_TYPE 
    WHEN 'Cat' THEN 1
    WHEN 'Dog' THEN 2
END
cs

1
2
-- SQL_SUM,MAX,MIN - 중복 제거하기
SELECT COUNT(DISTINCT NAME) AS count FROM ANIMAL_INS WHERE NAME IS NOT NULL
cs

1
2
-- SQL_SUM,MAX,MIN - 동물 수 구하기
SELECT COUNT(ANIMAL_TYPE) AS count FROM ANIMAL_INS
cs

 

1
2
-- SQL_SUM,MAX,MIN - 최솟값 구하기
SELECT MIN(DATETIMEFROM ANIMAL_INS
cs

1
2
-- SQL_SUM,MAX,MIN - 최댓값 구하기
SELECT MAX(DATETIME) AS '시간' FROM ANIMAL_INS
cs

 

1
2
-- 상위 n개 레코드
SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME ASC LIMIT 1
cs

 

1
2
-- 여러 기준으로 정렬하기
SELECT ANIMAL_ID, NAME, DATETIME FROM ANIMAL_INS ORDER BY NAME ASC, DATETIME DESC
cs

1
2
-- 동물의 아이디와 이름
SELECT ANIMAL_ID, NAME FROM ANIMAL_INS ORDER BY ANIMAL_ID ASC
cs

+ Recent posts