76일차

Suhyeon Lee·2025년 1월 17일
post-thumbnail

CodeKata

SQL

LeetCode: Combine Two Tables

  • 작성한 쿼리
select
  p.firstName
  , p.lastName
  , a.city
  , a.state
from
  person p
  left join address a
  on p.personId = a.personId
;

기억해 두면 좋을 내용

  • ON과 USING의 차이점

    • ON
    • USING
  • ON으로 조인하면 6개의 컬럼이 출력되고 USING으로 조인하면 5개의 컬럼이 출력됨

    • USING은 컬럼명이 동일한 경우에만 사용 가능
      • 따라서 똑같은 컬럼(예제에서는 detp_id)을 두 번 포함할 필요가 없으니 하나만 출력되는 것!

A nice side-effect of this is convenience - when you're using USING, if you want to refer to the column in your SELECT clause or elsewhere, you don't need to prefix the column name with the table name!

LeetCode: Nth Highest Salary

CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
  RETURN (
      # Write your MySQL query statement below.
  );
END

→ ????? 아니 이게 뭐람

  • 작성한 쿼리
CREATE FUNCTION getNthHighestSalary(num INT) RETURNS INT
BEGIN
  RETURN (
    WITH employee_rank AS (
      SELECT
        salary
        , DENSE_RANK() OVER (ORDER BY salary DESC) AS rn
      FROM
        employee
    )
    SELECT 
      DISTINCT salary
    FROM
      employee_rank
    WHERE 
      rn = num
    );
END

참고할 만한 다른 풀이

CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
SET N = N-1;
  RETURN (
      SELECT DISTINCT(salary) from Employee order by salary DESC
      LIMIT 1 OFFSET N   
  );
END
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
DECLARE  A INT;
SET A = N-1;
RETURN (
    SELECT DISTINCT salary
    FROM Employee
    ORDER BY salary DESC
    LIMIT A,1
  );
END

기억해 두면 좋을 내용

  • SQL에서도 함수를 만들 수 있다…

최종 프로젝트

  • 컬럼 수가 너무 많아서 원하는 내용이 들어 있는 컬럼명을 찾는 함수 작성함
def find_columns_with_keyword(df, keyword):
    return [col for col in df.columns if keyword in col]
check=df[df["killMonsters"]=="7")
print(check.sum())
  • 마크다운 파일에 목차 링크 toc 넣기
# 1
<a href="#1-가려는-도착지">1. 가려는 도착지</a> Test1

# 2
[1. 가려는 도착지](#1-가려는-도착지) Test2

강의

데이터 파이프라인 구축 4강

기타

sql 함수
데이터 분석 프로세스 복습&정리

회고

  • SQL 처음 보는 문제라 내용 공부를 좀 하다 보니 알고리즘 문제를 못 풀었다…
    • MySQL도 함수를 만드는구나! 신기하다
  • 파이프라인 수업 어렵지만 재미있다
    • 주식? 코인?에 관한 걸 잘 몰라서 시간이 오래 걸리긴 했지만😅
    • Data Analytics Engineer
      • 데이터 엔지니어와 데이터 분석가의 gap을 채워줄 중간자의 역할
profile
2 B R 0 2 B

0개의 댓글