DataBase/Mysql

[SQL] SQL 쿼리문, 통계 데이터 내기

민돌v 2022. 1. 6. 11:31
728x90

 

1)  Group by : 범주의 통계내기

select name, count(*) from users
group by name;
  •  group by name: name이라는 필드에서 동일한 값을 갖는 데이터를 하나로 합쳐줍니다
  • select name, count(*): 이름과 count(*)를 출력해 주는데, 여기서 count(*)는 group by로 합쳐진 데이터의 개수를 세어준다

 

2) Group by 기능 알아보기 (최소, 최대, 평균, 합계)

각각, min, max, avg, sum 키워드로 접근한다.

select 필드명, min(최솟값을 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;

 

3) Order by : 정렬

실행결과를 정렬하고 싶을 때, orderby를 사용한다!

select name, count(*) from users
group by name
order by count(*);

👉 위 쿼리가 실행되는 순서: from → group by → select → order by

 

내림차순은 orderby 뒤에 desc를 붙혀준다

select name, count(*) from users
group by name
order by count(*) desc;

 

4) Orderby, Where절과 함께 짜기

[순서]

  1. orders 테이블에서 주문 데이터를 읽어오고
  2. 웹개발 종합반 데이터만 남기고
  3. 결제수단(범주) 별로 그룹화하고
  4. 결제수단별 주문건수를 세어준다!
select payment_method, count(*) from orders
where course_title = "웹개발 종합반"
group by payment_method order by count(*);

👉 order by는 맨 나중에 실행됩니다! (결과물을 정렬해주는 것이기 때문!)

반응형