9일차

Suhyeon Lee·2024년 10월 14일
0

CodeKata

SQL

52. 과일로 만든 아이스크림 고르기

  • 작성한 쿼리
SELECT
  flavor
FROM
  first_half
WHERE
  flavor IN (
    SELECT
      flavor
    FROM
      icecream_info
    WHERE
      ingredient_type = 'fruit_based'
    )
  AND total_order > 3000 
ORDER BY
  total_order DESC
;
  • 다른 접근 방법: JOIN
    • 상반기 아이스크림 종 주문량이 3,000보다 높은 아이스크림 맛 → WHERE
    • 아이스크림의 주 성분이 과일 → WHERE
    • 아이스크림의 맛을 총 주문량이 큰 순서대로 조회 → ORDER BY
SELECT
  fh.flavor AS flavor
FROM
  first_half fh
  JOIN icecream_info ii
  ON fh.flavor = ii.flavor
WHERE
  fh.total_order >= 3000
  AND ii.ingredient_type = 'fruit_based'
ORDER BY
  fh.total_order DESC
;
/*icecream_info 테이블의 PK는 flavor이고 
first_half 테이블의 PK인 flavor를 참조한다.
즉, FK이다.*/

53. 재구매가 일어난 상품과 회원

  • 작성한 쿼리
SELECT 
  user_id
  , product_id
FROM
  online_sale
GROUP BY
  user_id
  , product_id
HAVING 
  COUNT(*) >= 2
ORDER BY 
  user_id
  , product_id DESC
;
  • 다른 접근 방법
  1. SelfJOIN
SELECT
  DISTINCT
    O1.USER_ID,
    O1.PRODUCT_ID
FROM
    ONLINE_SALE AS O1
JOIN
    ONLINE_SALE AS O2
ON
    O1.USER_ID = O2.USER_ID
    AND O1.PRODUCT_ID = O2.PRODUCT_ID
WHERE
    NOT (
        O1.ONLINE_SALE_ID = O2.ONLINE_SALE_ID
        AND O1.SALES_AMOUNT = O2.SALES_AMOUNT
        AND O1.SALES_DATE = O2.SALES_DATE
    )
ORDER BY
    O1.USER_ID asc, O1.PRODUCT_ID desc
;
  1. Window Function
select distinct tb.USER_ID,
       tb.PRODUCT_ID
from
(select count(*) over(partition by os.USER_ID, os.PRODUCT_ID) as CNT, 
        os.*
from ONLINE_SALE os) tb
where tb.CNT > 1
order by tb.USER_ID asc, tb.PRODUCT_ID desc
;

54. 최댓값 구하기

  • 작성한 쿼리
SELECT
  MAX(datetime) AS "시간"
FROM
  animal_ins
;
  • 다른 접근 방법: ORDER BY + LIMIT
SELECT DATETIME	AS 시간 
FROM ANIMAL_INS
ORDER BY DATETIME DESC
LIMIT 1
;

Python

10. 배열의 평균값

  • 작성한 코드
def solution(numbers):
    return sum(numbers)/len(numbers)
  • 다른 접근 방법
  1. for loop
def solution(numbers):
    sum = 0 
    for i in numbers:
        sum += i 
    answer = sum / len(numbers)
    return answer
  1. numpy 모듈
import numpy as np
def solution(numbers):
    return np.mean(numbers)
  1. (파이썬 3.4버전부터 가능) statistics 라이브러리
def solution(numbers):
    return statistics.mean(numbers)

프로그래밍 기초 발제

프로그래밍 기초(3주차 ~ 6주차)

강의: 데이터 리터러시

  • '데이터 이해 및 활용 능력'을 뜻함
    • 데이터 활용 능력: 데이터 읽기 → 해석 → 효과적 분석 → 의사 결정
  • "문제 정의 및 인사이트 도출"이 가장 핵심
    • SQL, python은 수단일 뿐

데이터 리터러시의 핵심

  1. 문제 및 가설정의
  2. 결과 해석 및 액션 도출

강의: 데이터 분석 파이썬 종합반

  • 문의사항은 서정욱 튜터님께
  • 파이썬을 처음 배우는 사람이 보더라도 이해할 수 있음 (초급자에게 추천)
  • 각각의 파이썬 문법이 데이터 분석 때 실제 사용될 수 있는 예시도 함께 있음
    • 분석 시 파이썬 문법 어떤 것이 필요하다는 것을 직접 느낄 수 있게 구성됨
  • 단순 파이썬 개발자가 생각해야 하는 관점과 데이터 분석가가 파이썬을 바라보는 관점을 구분해 오로지 데이터 분석가의 관점에서 파이썬 문법을 다룰 수 있도록 돕는 강의

강의: 데이터 전처리&시각화

  • 10/25 예정

Python? 왜?

  • 간결함 + 생산성 + 오픈소스 프로그래밍 언어
  • 높은 연동성 & 방대한 라이브러리
  • 인간다운 언어
    • c언어랑 비교해봐라... 선녀임...
  • 직관적이며 쉽게 입문 가능

이 캠프에서 목표로 하는 점

  • 데이터 분석을 하기 위한 프로그래밍 입문 수준의 코딩 지식
    • 웹 프로그래밍, 모바일 프로그래밍, 시스템 제작, 인공지능 제작 수준 X
  • 파이썬 라이브러리에 대한 활용 능력

데이터 리터러시

1-1 데이터 리터러시

데이터 분석 파이썬 종합반

파이썬 소개 및 입문

    1. 이번에 배울 것

SQL 라이브 세션

6회차

ADsP 자격증 챌린지

4주차

  • R 설치
  • R 기본구성 및 데이터 구조 1

ADsP 복습

  • 4주차 1, 2
profile
2 B R 0 2 B

0개의 댓글