본문 바로가기
SQL

-SQL 2주차-

by @kkkk_biiin 2023. 1. 17.
728x90

(아래 나오는 내용들은 스파르타 코딩클럽의 엑셀보다 쉬운 SQL 강의 내용을 정리한 것이다.) 

1. group by

group by를 실행할 때 한 번에 group by로 묶으려고 하기 보다는 절차에 맞춰서 차근차근 진행하는 것이 중요하다.

#1. 먼저 users라는 테이블에 어떤 필드가 있는지 확인을 한 뒤,
select * from users

#2. 그룹화 하고자 하는 필드를 group by를 사용해 밑에 먼저 적어준다.
select * from users
group by name

#3. 이후 name으로 그룹화하여 개수를 세고자 할 때 아래와 같은 방법으로 진행한다.
select name, count(*) from users
group by name

한 번에 3 번을 진행하는 것 보다는 위와 같은 절차에 맞춰서 group by를 사용하면 헷갈리지 않게 사용할 수 있다.

2. order by

order by는 정렬을 해주는 기능으로, 위에서 다른 조건을 설정한 뒤 마지막에 사용하는 기능이라고 기억하면 편하다. 

order by는 그냥 사용할 때 오름차순으로 정렬되며, order by x desc와 같이 뒤에 desc를 붙여주면 내림차순으로 정렬된다.

3. where, group by, order by 혼합 활용

세 가지를 사용할 때 위에서 group by를 설명한 것처럼 차례대로 절차에 맞춰서 진행하는 것이 중요하다.

#1. orders 테이블에 어떤 필드가 있는지 확인한다.
SELECT * from orders

#2. where을 사용하여 조건을 걸어준다.
select * from orders
WHERE email LIKE '%naver.com'
and course_title = '앱개발 종합반'

#3. group by를 통해 그룹화하고자 하는 항목을 묶어준다.
select payment_method ,COUNT(*)  from orders
WHERE email LIKE '%naver.com'
and course_title = '앱개발 종합반'
GROUP by payment_method

4. sum, avg

sum과 avg는 특정 필드의 합과 평균을 구할 때 사용하며 아래와 같은 형식을 가진다.

또한 avg(평균)는 소수점 까지 나오기 때문에 3번 형식을 활용하여 소수점을 늘리고 줄일 수 있다.

#1. sum
SELECT course_id , sum(likes) FROM checkins c 
group by course_id

#2. avg
SELECT course_id , avg(likes) FROM checkins c 
group by course_id

#3. round를 활용한 avg
SELECT course_id , round(avg(likes),2) FROM checkins c 
group by course_id

 

728x90

'SQL' 카테고리의 다른 글

-SQL 문법정리-  (0) 2023.01.20
-SQL 4주차-  (0) 2023.01.19
-SQL 3주차-  (0) 2023.01.18
-SQL 1주차-  (0) 2023.01.16