티스토리 뷰

Programming/Data

Datacamp SQL Fundamentals <1>

prograsshopper_ 2019. 9. 24. 17:14

Datacamp 의 SQL Fundamentals 트랙을 공부하면서 정리한 내용이다.

첫번째 코스인 Intro to SQL for Data Science은 SQL의 기초를 정리하는 내용이었다.

 

SQL (Structured Query Language)

 

select 문

기본형 : select (field) from (table);

- 중복을 제거한 값을 구하고 싶다면 필드명 앞에 distinct 를 넣으면 된다
- 갯수를 구하고 싶다면 count(field) 식으로 하면 갯수를 구할 수 있다

필터링

where (field) (=><..operator) (value);


- 여러개의 조건을 동시에 검사하고 싶으면 AND, OR 로 연결가능
- 범위를 구하고 싶다면 (field) between (first) and (last) 식으로 가능
- (field) in (list) 식으로도 검사 가능
- Null 검사: IS (NOT) NULL 식으로 검사
*LIKE : 예를 들어서 data로 시작하는 모든걸 검색하고 싶다면 data%, data(??)mp형식이라면 data__mp 식으로 검색하면 된다. 반대는 NOT LIKE

총계 구하기
SUM, AVG, MIN, MAX
- 기본형에서 MAX(FIELD)식으로 써준다

종합 예문

SELECT SUM(GROSS) FROM FILMS WHERE RELEASE_YEAR >= 2000;
SELECT AVG(GROSS) FROM FILMS WHERE TITLE LIKE 'A%';
SELECT MIN(GROSS) FROM FILMS WHERE RELEASE_YEAR = 1994;
SELECT MAX(GROSS) FROM FILMS WHERE RELEASE_YEAR BETWEEN 2000 AND 2012;



계산
SELECT (3 * 4);
계산시에 SQL은 만약 정수끼리 나눈다면 정수값을 원한다고 추정하여 값을 내놓으므로 유의해야한다

ALIAS
예문 

SELECT avg(duration)/60.0 as avg_duration_hours FROM films;

SELECT avg(duration)/60.0 as avg_duration_hours FROM films;


만약에 여러값을 추출해야할 경우인데 그대로 데이터를 뽑으면 뭐가 뭔지 구분이 어려울 수 있다. 때문에 별칭을 붙여줘서 알아보기 쉽게 만들어주는 편이 좋다. 
예문
SELECT COUNT(deathdate) * 100.0 / COUNT(*) AS percentage_dead FROM people;

SELECT COUNT(deathdate) * 100.0 / COUNT(*) AS percentage_dead FROM people;


ORDER BY
기본적으로 오름차순(A-Z)이다

GROUP BY
group by (field) 식으로 사용한다
항상 from문 뒤에 따라온다
예문

select imdb_score, count(*) from reviews group by imdb_score;

select imdb_score, count(*) from reviews group by imdb_score;

 

HAVING
aggregate문은 where절에선 못 쓰지만 여기선 가능
-조건문

종합예문
select release_year, avg(budget) as avg_budget, avg(gross) as avg_gross from films where release_year > 1990 group by release_year having avg(budget) >60000000 order by avg(gross) desc;

elect release_year, avg(budget) as avg_budget, avg(gross) as avg_gross from films 
where release_year > 1990 group by release_year 
having avg(budget) >60000000 order by avg(gross) desc;
반응형

'Programming > Data' 카테고리의 다른 글

PySpark : 2. Spark Dataframe Basics 1, 2  (0) 2024.02.01
PySpark : 1. Hadoop, Mapreduce, Spark  (0) 2024.01.28
Kaggle - Intro to Machine Learning  (0) 2020.02.24
Numpy <1>  (0) 2019.01.03
댓글