TIL

2024-05-24

여연찌 2024. 5. 24. 21:36
  • Today

1. 프로젝트 발표 및 회고

2. SQL Basic 1회차 특강 수강

 


  • Today I Learned

SQL

 

몇 주 내내 파이썬만 주구장창 했더니 SQL 이 낯설어지기 시작해서

SQL 베이직 녹화수업을 수강해보았다.

기초 복습을 할 것이라는 내 생각과는 다르게 window 함수를 사용하는 것을 보고 놀랐다..

 

간단하게 정리를 해보자

SELECT 그룹, SUM(값) FROM 테이블 GROUP BY 그룹

# window 함수 기본 구조
집계 함수(칼럼) OVER([PARTITION BY 컬럼] [ORDER BY 컬럼])
SUM(값) OVER (PARTITION BY 그룹)

 

group by  할 컬럼을 partition by 뒤에 적어주면 됨!

순서를 정렬하고 싶다면

SUM(salary) over(partition by department order by salary desc) as cumulative_salary

이런식으로 뒤에 작성해주면 된다.

 

window 함수는 모든 컬럼을 그대로 두고 결과를 보여준다.

> 행의 수가 그대로 유지된다.

 

window 함수로 그룹화
group by 로 그룹화

 

참고: https://schatz37.tistory.com/12

 

 

순위를 매기는 함수는 다음과 같다.

 

ROW_NUMBER()

동 순위 무시하고 순위 매기기(순번을 지정하지 않는다면 데이터 원본 순서로 정렬)

1234567

 

RANK

동순위 발생 시 건너뜀

1224557

 

DENSE_RANK

동순위 발생 시 건너뛰지 않음

122345567

 

 

 

 

* 성훈튜터님 멘토링

데이터베이스에서 컬럼명 등을 사용할 때에는 모음을 뺀 약어를 사용한다.

name > nm

data > dt

department > dpt

rank > rnk

 

 

 

SQL Basic 1 회차 과제

더보기
# 직원의 급여를 기준으로 순위를 매기고, 동일한 급여를 가진 직원들이 있을 경우, 같은 순위를 부여하되 다음 순위는 건너뛰도록 하세요.
select name,
	   salary,
	   rank() over(order by salary desc) as "rank"
from employees;

# 각 부서(department)별로 급여(salary)의 누적 합계를 계산하세요. 
select department,
	   name,
	   salary,
	   SUM(salary) over(partition by department order by salary desc) as cumulative_salary
from employees;

# 각 부서(department) 내에서 가장 높은 급여와 가장 낮은 급여의 차이를 계산하세요.
select department,
	   max(highest_salary) as highest_salary,
	   max(lowest_salary) as lowest_salary,
	   max(highest_salary) - max(lowest_salary) as salary_difference
from (
select department,
	   first_value (salary) over(partition by department order by salary desc) as highest_salary,
	   last_value(salary) over (partition by department order by salary asc) as lowest_salary
from employees
) a
group by department;

 

 

 


 

프로젝트

 

피드백

 

 

https://lyj-01.tistory.com/154

 

[Team Project] 은행 고객데이터를 이용한 서비스 분석

프로젝트명: 은행 고객데이터를 이용한 서비스 분석기간: 2024-05-17~24활용 데이터: https://www.kaggle.com/datasets/khanmdsaifullahanjar/bank-user-dataset  Bank User DatasetThis dataset contains user behaviors contributing to t

lyj-01.tistory.com

 

* 정기영 튜터님 멘토링

 

데이터에 대해 깊게 이해하려고 하기 위해 EDA 를 굉장히 열심히 진행하였고,

컬럼 하나하나마다 결측치와 이상치 처리를 하는 것도 좋았다.

분석에 대한 전문성과  시각화 자료도 잘 진행하였다.

 

다만 시각화 그래프의 경우 사이드적인 부분이기 때문에 

시각화가 담고 있는 메시지를 ppt 에 같이 첨부해주면 좋았을 것이다.

저연령층일 수록 대출마감지연건수가 높거나 하는 등 당연한 정보들이 많아

회사입장에서는 새로운 느낌을 주지는 않아보인다.

이 데이터에서 인사이트를 찾아내는 것이 어려웠겠으나

조금더 과감함 목표를 세워 검증 및 인사이트를 뽑는 방향으로 진행하면 좋았을 것이다.

 

 


  • Next

1. 새로운 팀 인사

2. 통계학 기초

'TIL' 카테고리의 다른 글

2024-05-28  (0) 2024.05.28
2024-05-27  (0) 2024.05.27
2024-05-23  (0) 2024.05.23
2024-05-22  (0) 2024.05.22
2024-05-21  (0) 2024.05.21