1)최소값
min(필드명)
ex) SELECT week, MIN(likes) from checkins
group by week
2) 최대값
max(필드명)
ex) SELECT week, MAX(likes) from checkins
group by week
3) 평균
avg(필드명)
ex) SELECT week, AVG(likes) from checkins
Group by week
4) 합계
sum(필드명)
ex) SELECT week, SUM(likes) from checkins
group by week
깔끔한 정렬이 필요할 땐 Order by
정렬은 언제 해야 할까? 뭔가 다 되고 맨 마지막에 하는게 정렬이다.
ex) ELECT name, COUNT() from users
group by name
order by count()
기본적으로 오름차순이 적용된다.
Where와 Group by, Order by 사용하기
1) group by
SELECT payment_method,COUNT(*) from orders
where course_title = '웹개발 종합반'
group by payment_method
2) 여기서 정렬 하고 싶을 때 Order by
SELECT payment_method,COUNT() from orders
where course_title = '웹개발 종합반'
group by payment_method
order by count()
실행되는 순서
1. from orders: users 테이블 데이터 전체를 가져옵니다.
2. where course_title = "웹개발 종합반": 웹개발 종합반 데이터만 남겨줍니다.
3. group by payment_method: 같은 payment_method을 갖는 데이터를 합쳐줍니다.
4. select payment_method, count(): payment_method에 따라 합쳐진 데이터가 각각 몇 개가 합쳐진 것인지 세어줍니다.
예) CARD, CARD, kakaopay 이렇게 데이터가 있었다면, CARD는 2개, kakaopay는 1개겠죠!
문자열 기준으로 정리
SELECT from users
order by email desc
1) show tables로 어떤 테이블이 있는지 살펴보기
2) 제일 원하는 정보가 있을 것 같은 테이블에 select * from 테이블명 limit 10 쿼리 날려보기
3) 원하는 정보가 없으면 다른 테이블에도 2)를 해보기
4) 테이블을 찾았다! 범주를 나눠서 보고싶은 필드를 찾기
5) 범주별로 통계를 보고싶은 필드를 찾기
6) SQL 쿼리 작성하기!
ex2) SELECT payment_method, count(*) as cnt from orders o
where o.course_title = '앱개발 종합반'
group by payment_method