본문 바로가기
Study/Database

SQL (DATABASE) 명령어3-group by

by Answer Choi 2016. 7. 27.
반응형


이번에는 저번에 이어 일정 조건으로 그룹을 짓는 방법에 대해 알아보겠습니다.



group by는 말 그대로 같은 것 끼리 그룹을 짓는 것을 뜻합니다.


지난 포스트에서 사용한 DB와 TABLE을 그대로 사용해 보겠습니다.


먼저 where문을 사용하지 않고, 쿼리를 해보겠습니다.


1
select Consumption,Time  from All_Consumption_201510;
cs



지난 포스트를 보시면 아시겠지만 270개나 되어 잘랐습니다^^;;


그럼 group by를 사용하여 그룹을 지어보겠습니다.


우선 Consumption 값으로 그룹을 지어보겠습니다.


1
 select Consumption,Time  from All_Consumption_201510 group by Consumption;
cs



Consumption이 같은 값끼리 그룹이 지어져 270 => 33개로 줄었습니다.


이번엔 자주 사용하는 Time 열을 가지고 group by 해 보겠습니다.


Time 열을 보면 년-월-일 시:분:초 로 구분되어 있는데 시간 기준으로 해보겠습니다.


1
select Consumption,Time  from All_Consumption_201510 group by HOUR(Time);
cs



년-월-일 시 까지 같은 경우에만 그룹이 지어졌습니다.


하지만 Consumption의 값이 그룹의 첫번재 data의 값이 보여집니다.


여기에 수식을 넣어 sum을 해보겠습니다.


1
select sum(Consumption),Time  from All_Consumption_201510 group by HOUR(Time);
cs



각 그룹의 sum 값이 출력되었습니다. 위 쿼리결과와 차이가 보이시나요?


그룹 갯수는 같지만 값이 달라졌습니다.


이번엔 일 기준입니다.


1
select Consumption,Time  from All_Consumption_201510 group by DAY(Time);
cs


마찬가지로 group by만 해주게 되면 그룹의 첫번째 데이터 값만 출력됩니다.



각 그룹의 데이터 갯수를 나타나게 하겠습니다.


1
select count(Consumption),Time  from All_Consumption_201510 group by DAY(Time);
cs




반응형

'Study > Database' 카테고리의 다른 글

mysql 한글 깨질때  (0) 2016.08.10
SQL (DATABASE) 명령어4-Having  (0) 2016.07.28
SQL (DATABASE) 명령어2-수식및 연산자  (0) 2016.07.26
SQLite 사용하기!!  (0) 2015.10.15
SQL (Database) 명령어-기본명령어  (0) 2015.10.02

인기글