강의를 듣기 전 준비해야 할 링크

LeetCode - https://leetcode.com/contest/

 

 


 

 

 

COUNT / SUM / AVG / MIN, MAX

 

 

COUNT, AVG에서 NULL은 집계되지 않는다.

Id Name Visits
1 A 1
2 A 2
3 B 3
4 C 5
5 NULL NULL

 

SELECT COUNT(*)
FROM sample		//5

SELECT COUNT(Name)
FROM sample		//4

SELECT COUNT(DISTINCT Name)
FROM sample		//3

 

Products 테이블에서 모든 제품 가격의 합 구하기

 

SELECT SUM(Price)
FROM Products

SUM()

 

Products 테이블에서 제품 가격의 평균 구하기

 

SELECT ROUNT(AVG(Price))
FROM Products

AVG()

 

 

+) 평균을 구할 때 NULL을 0으로 변환하여 계산하는 방법

SELECT SUM(Visits) / COUNT(*)
FROM sample

 

 

Products 테이블에서 최저 가격과 최고 가격 조회

 

SELECT MIN(Price) 최저가격
	, MAX(Price) 최고가격
FROM Products

MIN(), MAX()

 

 


 

 

GROUP BY & HAVING

 

 

어떤 공급자가 보통 얼마의 상품을 판매하는지 TOP3 조회하기

SELECT SupplierID 공급자
	, ROUND(AVG(Price)) "평균 가격"
FROM Products
GROUP BY SupplierID
ORDER BY "평균 가격"
LIMIT 3

 

 

GROUP BY에서  WHERE와 HAVING의 차이

 

예를 들어서  WHERE 절로 가격이 100불 이상인 것을 조회한다고 했을 때, 명령어 진행 순서상

 

  1. 가격이 100불 이상인 것 조회
  2. GROUP BY 명령어 실행
SELECT SupplierID
	, CategoryID
	, AVG(Price)
FROM Products
WHERE Price >= 100
GROUP BY SupplierID, CategoryId

 

 

HAVING 절을 사용한다면

 

  1. GROUP BY 명령어 실행 (그룹화)
  2. 그룹화 된 결과에서 가격이 100불 이상인 것 조회
SELECT SupplierId
	, CategoryId
	, AVG(Price)
FROM Products
GROUP BY SupplierId, CategoryId
HAVING Price >= 100

 

 


 

 

HACKER RANK

 

1.Revising Aggregations - Averages

SELECT AVG(Population)
FROM City
GROUP BY District
HAVING District = "California"

 

 

2. Revising Aggregations - The Sum Function

SELECT SUM(Population)
FROM City
WHERE District = "California"

 

 

3. Revising Aggregations - The Count Function

SELECT COUNT(District)
FROM City
WHERE Population > 100000

 

 

 

4. Average Population

SELECT ROUND(AVG(Population))
FROM City

 

 

 

5. Population Density Difference

SELECT (MAX(Population)-MIN(Population))
FROM City

 

 

 

 

6. Weather Observation Station 4

SELECT (COUNT(*) - COUNT(DISTINCT City))
FROM Station

 

 

 

7. Top Earners

 

 

SELECT (salary * months)
	, COUNT(*)
FROM Employee
GROUP BY (salary * months)
ORDER BY (salary * months) DESC
LIMIT 1

 

 


 

< 기초 SQL 시리즈 >

 

2020/07/14 - [Database/SQL] - [백문이불여일타] 데이터 분석을 위한 기초 SQL - 1부

2020/07/14 - [Database/SQL] - [백문이불여일타] 데이터 분석을 위한 기초 SQL - 2부

2020/07/14 - [Database/SQL] - [백문이불여일타] 데이터 분석을 위한 기초 SQL - 3부 完

 

< 중급 SQL 시리즈 >

 

2020/07/15 - [Database/SQL] - [백문이불여일타] 데이터 분석을 위한 중급 SQL - 1부

2020/07/15 - [Database/SQL] - [백문이불여일타] 데이터 분석을 위한 중급 SQL - 2부

2020/07/16 - [Database/SQL] - [백문이불여일타] 데이터 분석을 위한 중급 SQL - 3부

2020/07/16 - [Database/SQL] - [백문이불여일타] 데이터 분석을 위한 중급 SQL - 4부 完

 

 

이 포스팅은 해당 강좌를 수강하며 작성하였습니다.

https://www.inflearn.com/course/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D-%EC%A4%91%EA%B8%89-SQL

 

[백문이불여일타] 데이터 분석을 위한 중급 SQL - 인프런

SQL 중급 이론을 배우고, 실습 문제를 함께 풀어봅니다. 초급 중급이상 데이터베이스 데이터베이스 데이터 분석 SQL 데이터 분석 온라인 강의 업무에 SQL을 바로 적용할 수 있고 SQL 코딩 테스트도 �

www.inflearn.com

 

+ Recent posts