데이터를 범주에 따라 묶어서 통계치를 구하고 , 정렬한다.
Group by
group by 는 특정 컬럼 기준으로 데이터를 그룹화하는 역할을 한다.
이를 이용하여 그룹별로 데이터를 집계하거나 필터링을 할 수 있다.
예를 들어 user 의 성씨가 들어있는 데이터가 있을때 group by 를 사용하면
1. 김** 김**
2. 이** 이**
3. 황** 황**
4. 정** -> 정**
5. 이** 장**
6. 장**
7. 이**
8. 장**
로 그룹화가 되고,
SUM, COUNT, AVG, MIN, MAX 등을 이용하여 원하는 정보를 얻을 수 있다.
예)
COUNT 를 이용한다면, 김** 1명, 이** 3명, ...
SELECT name, count(*) from users
group by name
Order by
Order by 는 데이터를 정렬하는 역할을 한다.
이를 이용하여 필요한 데이터를 순서대로 정렬하여 가독성을 높이는데 유용하다.
Order by 에는 ASC(오름차순), DESC(내림차순) 이 있으며 Order by 의 기본값은 오름차순이다.
예)
SELECT name, count(*) from users
group by name
order by count(*)
위와 같이 실행한다면 김 씨와, 정 씨와 , 황 씨가 먼저 표기 되며 그다음 장 씨, 이 씨 순으로 표기 된다.
뒤에 DESC 를 쓴다면 역순으로 표기된다.
where와 함께 써보기
SELECT payment_method,COUNT(*) FROM users
WHERE age = 30
group by name
ORDER by COUNT(*) DESC
나이가 30인 사람중에 성씨 를 내림차순으로 조회