엑셀보다 쉬운 SQL - 2주차

su·2023년 5월 2일
0

SQL공부

목록 보기
2/4
post-thumbnail

데이터에서 알고 싶은 것

통계: 최대 / 최소 / 평균 / 개수

  • 데이터 분석의 목적은 쌓여있는 데이터를 의미를 갖는 '정보'로 변환하기 위한 것
  • 더 나아가면 범주(category) 각각의 정보가 궁금할 수 있음

GROUP BY

  • 동일한 범주의 데이터를 묶어주는 역할
  • 동일한 범주를 갖는 데이터를 하나로 묶어, 범주별 통계를 내줌

ORDER BY

  • 데이터를 정렬하는 기능

GROUP BY

ex) 성씨별로 몇 명의 회원이 있는지 구하려면?

select name, count(*) from users
group by name;
  • 실행 순서: from → group by → select

GROUP BY, ORDER BY 사용하기

select 범주별로 세고싶은 필드명, count(*) from 테이블명
group by 범주별로 세고싶은 필드명
  • 범주별로 세고싶은 필드명을 select에 넣어주는 이유는 어떤 것을 count 했는지 나타내주기 위해서 (select해주지 않으면 보이지 않음)
  • 개수 - count, 최소값 - min, 최대값 - max, 평균 - avg, 합계 - sum
select 필드명 from 테이블명
group by 필드명
order by 정렬 기준 필드명 desc;
  • order by에 정렬하고 싶은 값을 넣어주면 됨
  • 기본 설정은 오름차순(asc)이며 내림차순(desc) 설정 가능
  • 실행 순서: from → group by → select → order by
select 필드명 from 테이블명
where 조건
group by 범주별로 세고싶은 필드명;
  • from → where → group by → select (→ order by)

ORDER BY, GROUP BY 연습

order by는 문자열, 시간도 기준으로 하여 정렬 가능

퀴즈1] A반의 결제수단별 주문건수 세기

select payment, count(*) from class
where class_name = 'A'
group by payment;

퀴즈2] kakao mail을 사용하는 이름별 회원수

select name, count(*) from user
where email like "%@kakao"
group by name;

퀴즈3] 코스별 평균 like의 개수 구하기

select course, avg(like) from class
group by course;

쿼리 작성 팁

1) show tables로 테이블 살펴보기
2) 원하는 정보가 있을 것 같은 테이블을 아래의 쿼리 작성해서 실행해보기

select * from 테이블명 limit 10;

3) 원하는 정보가 없다면 다른 테이블에도 2) 적용해보기
4) 테이블을 찾았다면 범주를 나눠 보고싶은 필드 찾기
5) 범주별 통계를 보고싶은 필드 찾기
6) SQL 쿼리 작성하기

별칭 기능: Alias

쿼리가 점점 길어지면 헷갈릴 수 있으므로 Alias라는 별칭 기능 사용

// 테이블명 뒤에 별칭 주기
select * from orders o
where o.필드명 = 조건;

// 출력될 필드 뒤에 as를 붙여 별칭 추가하기
select 필드명, 필드명 as hl from orders o
where o.필드명 = 조건
group by 필드명;
profile
(❁´◡`❁)

0개의 댓글