본문 바로가기
카테고리 없음

[SQL 입문반 33기] 2주차 복습(SQL ver)-2

by WHDA 2024. 9. 23.

데이터리안 SQL 데이터 분석 캠프 입문반 2주차 복습

이번 글에서는 2주차 학습 내용 중에서 숫자 연산, 연산 함수에 대한 복습 내용을 작성하겠습니다.

 

이전 글 링크:

1: https://whda.tistory.com/7

 

[SQL 데이터 분석 캠프 입문반 33기] 2주차 복습(SQL ver)-1

데이터리안 SQL 데이터 분석 캠프 입문반 2주차 복습본격적인 복습 내용에 앞서 앞으로 블로그 포스팅 방식을 바꾸려고 합니다.주차별로 내용을 한번에 전부 업로드 하는 것이 아니라 챕터별로

whda.tistory.com

 

데이터 설명

이번에도 타이타닉 생존자 데이터를 사용하고자 합니다. 

변수명 정의
PassengerId 승객 번호
Survived 생존여부
Pclass 티켓 등급
Name 이름
Sex 성별
Age 연령
SibSp 승선 중인 형제나 배우자의 수
Parch 승선 중인 부모나 자녀의 수
Ticket 티켓 번호
Fare 티켓 요금
Cabin 방 번호
Embarked 승선한 항구의 이름

 

데이터 출처: 타이타닉 데이터

 

Titanic - Machine Learning from Disaster

Start here! Predict survival on the Titanic and get familiar with ML basics

www.kaggle.com

 

1. 숫자 연산

 

  • 더하기(+)

Q. Fare에 10를 더하세요.

SELECT Fare
		, Fare + 10 AS fare_plus10
FROM titanic_train;

 

  • 빼기(-)

Q. Fare에 5를 빼세요.

SELECT Fare
		, Fare - 5 AS fare_minus5
FROM titanic_train;

 

  • 곱하기(*)

Q. Fare에 2를 곱하세요.

SELECT Fare
		, Fare * 2 AS double_fare
FROM titanic_train;

 

  • 나누기 및 나머지(/ , DIV, MOD, %)

Q. Fare를 2로 나누세요.

SELECT Fare
		, Fare / 2 AS fare_divid2
FROM titanic_train;

 

Q. Fare를 2로 나누세요.(결과가 정수 형태로 나오게 해주세요.)

SELECT Fare
		, Fare DIV 2 AS fare_divid2
FROM titanic_train;

MySQL에서는 DIV 함수를 사용하면 일반 나누기(/)와는 다르게 정수값만 결과로 나타낼 수 있습니다.

다만 사실 프로그래밍에서 일반적으로 정수와 정수간 연산에서는 정수가 결과로 나옵니다.

(PostgreSQL에서는 나누기(/)를 하면 정수로 결과가 나옵니다.)

 

Q. Fare를 2로 나눈 나머지를 구하세요.

-- 나머지(%)
SELECT Fare
		, Fare % 2 AS fare_divid2
FROM titanic_train;

-- 나머지(MOD)
SELECT Fare
		, Fare MOD 2 AS fare_divid2
FROM titanic_train;

나머지를 구하는 방법은 2가지로 (%)와 MOD 함수가 있습니다.

 

2. 연산 함수

  • 절대값(ABS)

Q. Fare에 절대값을 취하세요.

SELECT Fare
		, ABS(Fare)
FROM titanic_train;

절대값은 0부터 그 숫자 사이의 거리로 편하게 생각하면 어떤 값을 양수로 만들어 주는 장치라고 생각하면 됩니다.

만일 데이터에 음수값이 있다면 절대값 함수를 사용하면 양수로 나타나집니다.

 

  • 소수점 올림(CEIL)

Q. Fare를 정수로 만드세요.(올림)

SELECT Fare
		, CEIL(Fare)
FROM titanic_train;

소수점 이하를 무조건 올려서 정수로 만들어 줍니다.

 

  • 소수점 내림(FLOOR)

Q. Fare를 정수로 만드세요.(내림)

SELECT Fare
		, FLOOR(Fare)
FROM titanic_train;

소수점 이하를 무조건 내려서 정수로 만들어 줍니다.

 

  • 반올림(ROUND)

Q. Fare를 정수로 만드세요.(반올림)

SELECT Fare
		, ROUND(Fare)
FROM titanic_train;

ROUND함수 뒤에 숫자를 입력하지 않으면 소수점 이하에서 반올림을 수행합니다.

 

Q. Fare를 첫째 자리에서 반올림하세요.

SELECT Fare
		, ROUND(Fare, 0)
FROM titanic_train;

 

 

Q. Fare를 둘 자리에서 반올림 하세요.

SELECT Fare
		, ROUND(Fare, 1)
FROM titanic_train;

 

  • 거듭제곱(POW, POWER)

Q. Fare를 2제곱을 구하세요.

SELECT Fare
		, POW(Fare, 2)
FROM titanic_train;

 

 

SELECT Fare
		, POWER(Fare, 2)
FROM titanic_train;

MySQL에서 POW와 POWER 함수 모두 작동합니다. 

하지만 Oracle, SQL server 같은 데이터베이스 시스템에서는 POW 함수는 동작하지 않습니다.

 

Q. Fare를 3제곱을 구하세요.

SELECT Fare
		, POW(Fare, 3)
FROM titanic_train;

 

  • 제곱근(SQRT)

Q. Fare의 제곱근을 구하세요.

SELECT Fare
		, SQRT(Fare)
FROM titanic_train;

SQRT 함수의 인자로는 양의 정수와 실수만 사용 가능합니다.

 

전체 소스코드가 궁금하다면 아래 깃허브 주소를 참고해주세요.

https://github.com/HSYhrae/TIL/tree/master/MySQL/Datarian

 

TIL/MySQL/Datarian at master · HSYhrae/TIL

Today I Learned. Daily commit. Contribute to HSYhrae/TIL development by creating an account on GitHub.

github.com

 

본 내용은 데이터리안 'SQL 데이터 분석 캠프 입문반' 을 수강하며 작성한 내용입니다.