전체 글 36

TIL_20250512 (월) SQL 복습 및 데이터리터러시

SQL 복습✅ RANK순위를 매기는 함수같은 값이 있을 경우 공동 순위 부여 (다음 순위 건너뜀)✅ OVER (윈도우 함수)"창(Window)" = 행들의 집합각 행을 기준으로, 전체 또는 그룹 내의 순위, 누적, 비교값 계산 가능데이터를 그룹화하지 않고 원본을 유지한 채 계산값만 붙여줌즉, GROUP BY는 행을 줄이고 요약,OVER는 행을 유지하고 추가 정보 계산 RANK 함수의 기본 구조1. RANK는 OVER(PARTITION BY ~ ORDER BY ~ DESC)와 함께 사용-> 순위를 나눌 기준 필요, 그래서 RANK는 윈도우 전용 함수예시RANK() OVER(PARTITION BY 부서 ORDER BY 급여 DESC) ✅ GROUP BY vs OVER항목GROUP BYOVER(윈도우 함수)..

카테고리 없음 2025.05.12

TIL_20250509 SQL 상관 서브쿼리

아직도 상관 서브 쿼리가 이해가 안 돼서오늘은 하루 종일 이것을 이해해 보려고 노력 중이다. Lv4. 단골 고객나라별로 총 주문 금액이 가장 높은 고객의 이름과 그 고객의 총 주문 금액을 조회하는 SQL 쿼리를 작성해주세요. SELECT c.country, c.customerName AS top_customer, SUM(o.totalAmount) AS top_spentFROM p4_customers_table cJOIN p4_orders_table o ON c.customerID = o.customerIDGROUP BY c.country, c.customerName# 여기서부터 문제# 그룹화 되어 있는 것들 중에 조건 부여# 조건 = 각 나라별 최고 금액을 구해라 ..

카테고리 없음 2025.05.09

TIL_20250508 (목) SQL 실전 DB 연습

Lv1. 데이터 속 김서방 찾기문제 본격적으로 시작해 볼까요?•상황: 여러분들은 스파르타코딩클럽의 분석가로 취직했습니다. DBeaver를 테스트 해볼 겸 “김”씨로 시작하는 이용자들 수를 세어 보기로 했습니다.•데이터 설명◦user 테이블은 스파르타 코딩클럽에 가입한 유저들의 정보를 날짜별로 기록한 테이블입니다.▪user_id: 익명화된 유저들의 아이디(varchar255)▪created_at: 아이디 생성 날짜(timestamp)▪updated_at: 정보 업데이트 날짜(timestamp)▪name: 익명화된 유저들의 이름(varchar255)▪email: 이메일(varchar255)•문제: 다음과 같은 결과테이블을 만들어봅시다.◦name_cnt: “김”씨 성을 가지고 있는 교육생의 수 name_cnt..

카테고리 없음 2025.05.08

TIL_20250507 (수) SQL 문법 연습 사전캠프 퀘스트

걷기반 1번 돈을 벌기 위해~아래와 같은 sparta_employees(직원) 테이블이 있습니다.idnamepositionsalaryhire_date1르탄이개발자300002022-05-012배캠이PM400002021-09-253구구이파트장350002023-06-014이션이팀장500002021-07-09 1.sparta_employees 테이블에서 모든 직원의 이름(name)과 직급(position)을 선택하는 쿼리를 작성해주세요.select name, positionfrom sparta_employees 2.sparta_employees 테이블에서 중복 없이 모든 직급(position)을 선택하는 쿼리를 작성해주세요.select distinct positionfrom sparta_employees 3..

카테고리 없음 2025.05.07

TIL_250502 (금) SQL 피벗테이블 복습 및 문제풀이

어제 복습을 하다 피벗테이블 부분이 막혀서 오늘 다시 개념부터 천천히 이해해보려고 한다. 피벗테이블(Pivot table) ?원래 "행(세로)"으로 된 데이터를 "열(가로)"로 변환해 시각적으로 보기 쉽게 "그룹화"해서 정리한 것📦 예시) 음식 주문 데이터가 이렇게 있을 때: 컬럼과 그 안에 데이터가 세로로 나열되어 있는데.연령대성별주문수연령대성별주문수20대female830대male530대female12 피벗테이블을 사용하면 성별이라는 컬럼 자체를 male과 female로 다시 그룹화해서 연령대별 + 성별별 주문 수를 확인할 수 있다 .연령대남성 주문 수여성 주문 수연령대malefemale20대10830대512 다시 정리하자면 피벗테이블은 비교 분석을 위한 시각적 재구성2개의 기준이 하나 값으로 ..

카테고리 없음 2025.05.02

TIL_250501 (목) SQL 복습 실전 쿼리 문제

✅ 1. [고객별 맞춤 쿠폰 발급 전략]이유: 마케팅팀이 고객 재구매를 유도하기 위해 고객별 쿠폰 전략을 세우려 합니다.요청: 주문 횟수에 따라 고객에게 지급할 쿠폰 할인율을 정하세요.주문 없음: 20%주문 1회: 10%주문 2회 이상: 5%📌 출력: customer_id, name, 주문 수, 할인율(%) select c.customer_id as "고객번호",c.name as "이름",count(fo.order_id) as "주문횟수",case when count(fo.order_id) = 0 then "20%" # 할인율 같은 경우에는 when count(fo.order_id) = 1 then "10%" # 추가 연산이 필요할 경우 10% 이렇게 말고 when count(fo.order_id) >..

카테고리 없음 2025.05.01

TIL_250430 (수) 파이썬 1주차 복습

오늘의 학습ChatGPT로 그 동안 파이썬 학습 TIL 작성한 걸 토대로 복습 문제를 10개 생성 1. 성인 판별 함수 만들기이름과 나이를 매개변수로 받아서 20세 초과면 "OOO은 성인입니다." 출력, 아니면 "OOO은 청소년입니다." 출력 def check_adult(name,age): return f"{name}님은 성인입니다." if age > 20 else f"{name}님은 청소년입니다."cat_1 = check_adult("김순대", 9) # cat_1의 "김순대",9 의 값은 def check_adult(name,age)의 함수에 대입한 값이다.cat_2 = check_adult("순대아빠", 31)print(cat_1, cat_2) # 김순대님은 청소년입니다. 윤심이님은 성인 입..

카테고리 없음 2025.04.30

TIL_250429(화)

오늘의 학습목표 : 파이썬 1주차 마무리 1-11 튜플, 집합 튜플리스트와 비슷하지만 불변형 자료리스트 = [ (튜플, ) ] 구조로 딕셔너리와 비슷한 형태로 많이 사용 굳이 ? 그냥 딕셔너리 쓰면 안되나 ?--> 딕셔너리 상태는 {키 : 값}을 모두 알고 있는 상태에서 사용, 하지만 실무에서는 데이터를 하나 씩 모으는 경우가 많고파일이나 DB에서 읽어올 때는 주로 리스트, 튜플이 합쳐진 구조로 들어오기 때문에리스트, 튜플 구조로 가지고 있다가 dict( 리스트 )를 사용하면 딕셔너리 형태로 변경을 시키기도 한다 !!* dict( 리스트 ) 사용 시 중복된 값은 마지막 값만 사용 됌집합주로 중복제거 시 많이 사용 됌 # 집합의 기본구조a = [1,2,3,1,2,3]a_set = set(a)# set을 ..

카테고리 없음 2025.04.29

TIL_250428 (월)

오늘의 학습 목표 : 파이썬 1주차 기초 문법, 심화 문법 파이썬= 일종의 번역팩= 초보자가 배우기 좋은 언어 1-2 *** 파이썬 기본 강의는 문법을 달달 외우는 것이 아니라 다시 와서 찾아 볼 수 있는 정도 ****** 실력 향상은 문제를 푸는데 집중하면 된다. *** 1-3 변수= 값을 담을 그릇 개념 변수 사칙연산 가능, 참과 거짓 판별 가능 a = 3 # a는 3의 값을 지닌 변수b = 2 print( a + b )print( a - b )print( a * b )print( a / b )print( a ** b) # 거듭제곱 print( a % b ) # 나머지print( a // b) # 몫# Boolean (참, 거짓)a = 3 > 2print (a) 1-4 # 파이썬은 '글'도 ..

카테고리 없음 2025.04.28

TIL_250427 (일)

오늘 학습목표 = SQL 3주차 if,case문 복습 if=if ( ~ 일 때, 참, 거짓)[실습1]음식 타입을 ‘Korean’ 일 때는 ‘한식’, ‘Korean’ 이 아닌 경우에는 ‘기타’ 라고 지정select restaurant_name ,cuisine_type as '원래 음식 타입',if(cuisine_type = 'Korean', '한식', '기타') as '바뀐 음식 타입'from food_orders case= case when ~ 일 때 then 참, when ~ 일 때 then 참 user segmentation= case문 사용case when ~ 일 때 then 참(그룹), when ~ 일 때 then 참(그룹) 오류

카테고리 없음 2025.04.28