SQL 2주차

손문수·2021년 5월 11일
0

select name, count(*) from users
group by name;
성씨별 회원수를 Group by로 쉽게 구해보기

  1. from users: users 테이블에서 데이터를 불러옵니다
  2. group by name: name이라는 필드에서 동일한 값을 갖는 데이터를 하나로 합쳐줍니다
  3. select name, count(): 이름과 count()를 출력해 주는데, 여기서 count(*)는 group by로 합쳐진 데이터의 개수를 세어주는 것입니다!

SQL에서 쿼리가 실행되는 순서를 아는 것은 정말 중요해요. 함께 단계별로 살펴봐요!

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

위 쿼리가 실행되는 순서: from → group by → select
1. from users: users 테이블 데이터 전체를 가져옵니다.
2. group by name: users 테이블 데이터에서 같은 name을 갖는 데이터를 합쳐줍니다.
3. select name, count(*): name에 따라 합쳐진 데이터가 각각 몇 개가 합쳐진 것인지 세어줍니다.

예) 이**, 이**, 김**, 김**, 박** 이렇게 데이터가 있었다면, 이**는 2개, 김**은 2개, 박**은 1개겠죠!

최대값 구하기
select 범주가 담긴 필드명, max(최대값을 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;

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

평균값 구하기
select 범주가 담긴 필드명, avg(평균값을 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;

합계 구하기
select 범주가 담긴 필드명, sum(합계를 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;
** ROUND( , 숫자) : 숫자만큼의 소수점으로 나타내기

select name, count() from users
group by name
order by count(
);
결과의 갯수 오름차순으로 정렬

select name, count() from users
group by name
order by count(
) desc;
결과의 갯수 내림차순

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

위 쿼리가 실행되는 순서: from → group by → select → order by
1. from users: users 테이블 데이터 전체를 가져옵니다.
2. group by name: users 테이블 데이터에서 같은 name을 갖는 데이터를 합쳐줍니다.
3. select name, count(*): name에 따라 합쳐진 데이터가 각각 몇 개가 합쳐진 것인지 세어줍니다.

예) 이**, 이**, 김**, 김**, 박** 이렇게 데이터가 있었다면, 이**는 2개, 김**은 2개, 박**은 1개겠죠!
  1. order by count(*): 합쳐진 데이터의 갯수에 따라 오름차순으로 정렬해줍니다.

select payment_method, count(*) from orders
where course_title = "웹개발 종합반"
group by payment_method;
웹개발 종합반의 결제수단별 주문건수 세어보기

위 쿼리가 실행되는 순서: from → where → group by → select
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개겠죠!
profile
웹개발자를 꿈꾸며

0개의 댓글