하파와 데이터

다시 연습하는 SQL-2(Order by, Group by) 본문

Development/SQL

다시 연습하는 SQL-2(Order by, Group by)

hhpp 2024. 12. 29. 02:28

오늘은 SQL 복습 2일차. 

시간으로는 새벽이 넘었지만, 어쨌뜬 잠을 자지 않았으니 

2일차의 연속이라고나 할까... 

 

쨋든 오늘도 스파르타코딩의 강의를 참고해서 복습을 시행했다. 

 

오늘은 SQL의 가장 기본인 ORDER BY, GROUP BY를 배웠다. 

 

 

1. ORDER BY + 컬럼명

ORDER BY는 뒤에 컬럼명과 함께 사용해서, 해당 컬럼명을 기준으로 정렬을 해주는 기능을 갖고 있다. 

일반적으로는 COUNT 등 숫자 컬럼을 기준으로 정렬을 하여 보기 좋게 데이터를 정리한다. 

 

하지만 ORDER BY는 숫자 컬럼 뿐 아니라, 

문자(영어/한글), 일자(시간)도 모두 정렬시킬 수 있다! 

 

그리고 내림차순과 오름차순 역시 지정할 수 있는데, 

ORDER BY 컬럼명 으로 작성하면 기본 디폴트가 오름차순이고 

컬럼명 뒤에 DESC(Descending의 약자)를 기입하면 내림차순으로 적용이 된다. 

오름차순 역시 ASC(Ascending의 약자)라고 넣어도 무방하다! 

 

2. GROUP BY + 컬럼명

GROUP BY 는 뒤에 컬럼명과 함께 사용하여, 집계를 해주는 함수다. 

대게 GROUP BY 만을 위해서 사용하기 보다는,

특정 컬럼내 요소들이 전체 데이터에서 얼마나의 비중을 차지하고 있는지 등을 파악하기 위해 사용된다. 

 

GROUP BY 는 컬럼으로 집계한 뒤, SELECT에 내가 필요한 집계함수를 넣는다. 

집계로는 SUM, MAX, MIN, AVG, COUNT 등이 가능하다! 

 

3. WHERE 절과 함께 사용

GROUP BY, ORDER BY 그리고 WHERE 조건문은 동시에 사용이 가능하다. 

예를들면, WHERE절을 통해서 특정 강의를 수강하는 사람들 가운데 

GROUP BY 를 활용하여 결제 수단을 기준으로 집계를 하여 COUNT를 보여주고 

ORDER BY 를 활용해 COUNT를 내림차순으로 나타낼 수 있다. 

이를 간략히 코드로 써보면 아래와 같다. 

SELECT o.course_title
     , payment_method 
     , count(*) AS cnt
FROM orders o 
WHERE o.course_title = '웹개발 종합반'
GROUP BY payment_method 
ORDER BY count(*) DESC

 

비슷한 예시를 하나 더 들어보면

1. 강의 구매자 중, 네이버 메일을 사용하는 사용자 가운데 

2. 앱개발 종합반 강의를 신청한 사람들의

3. 결제 수단 별 주문건수를 세어보면

아래의 코드와 같다. 

SELECT payment_method
	 , count(*) as cnt
FROM orders
WHERE email like '%naver.com'
  AND course_title = '앱개발 종합반'
GROUP BY payment_method
반응형

'Development > SQL' 카테고리의 다른 글

다시 연습하는 SQL-3(JOIN)  (0) 2025.02.10
다시 연습하는 SQL-1(where 절)  (1) 2024.12.28
다시 연습하는 SQL-0  (1) 2024.12.28
SQL에서 데이터 몇개만 보기  (0) 2024.10.18
[SQL이론] DATE 형태 변형, 일자 변경  (0) 2023.08.08