2024/09 5

SQL null의 처리

https://school.programmers.co.kr/learn/courses/30/lessons/151141 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  # # -- 코드를 입력하세요WITH LABELED_HISTORY AS ( SELECT (DATEDIFF(END_DATE, START_DATE) + 1) AS DURATION, HISTORY_ID, h.CAR_ID, DAILY_FEE, CAR_TYPE, CASE WHEN (DATEDIFF(END_DATE, START_DATE) + 1) >= 90 THEN '90일 ..

DB 2024.09.06

SQL CTE (Common Table Expression)

https://school.programmers.co.kr/learn/courses/30/lessons/301649 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 특정 컬럼으로 정렬 후,4배인것에서 힌트를 얻어 퍼센테이지로 랭크를 매김     WITH AS (CTE):용도: 복잡한 쿼리를 간결하게 작성하고 재사용할 수 있게 해줍니다.구조:WITH CTE_NAME AS ( SELECT ... FROM ... ) SELECT ... FROM CTE_NAME;CTE는 일반적으로 중간 계산을 저장하고, 메인 쿼리에서 그 결과를 사용할 수 있도록 합니다. 여러 개의 ..

DB 2024.09.05

SQL varray를 RDB에서 쓰는 법 - distinct, bit 연산

rdb에서 배열을 저장하고 싶다면 어떻게 할까?? 프로그래머스 sql문제에 좋은 예시가 있다   다른 테이블을 참조하여 모든 켜진 비트에 해당하는 ID를 찾으려면, 비트 연산을 활용하여 두 테이블을 JOIN해야 합니다. 이 경우, 한 테이블에는 ID와 비트 값(예: permissions), 다른 테이블에는 각 비트의 의미를 정의한 데이터가 포함됩니다.예시 시나리오USERS 테이블: 사용자 ID와 권한(비트 값)이 저장됨PERMISSIONS 테이블: 각 비트의 의미를 정의한 테이블테이블 정의USERS 테이블:id: 사용자 IDname: 사용자 이름permissions: 비트로 표현된 권한 값sql코드 복사CREATE TABLE USERS ( id INT PRIMARY KEY, name VARCHAR(50)..

DB 2024.09.04

SQL in

https://school.programmers.co.kr/learn/courses/30/lessons/131536 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 프로그래머스 > 재구매가 일어난 상품 데이터 in 절 앞에 괄호를 사용하여 한개 이상의 데이터를 동시에 in으로 검색할 수 있다.  -- 코드를 입력하세요SELECT USER_ID, PRODUCT_IDFROM ONLINE_SALEWHERE (USER_ID, PRODUCT_ID) IN ( SELECT USER_ID, PRODUCT_ID FROM ONLINE_SALE GROUP BY U..

DB 2024.09.04

SQL union all

https://school.programmers.co.kr/learn/courses/30/lessons/131537 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 프로그래머스 오프라인/온라인 판매 데이터 통합하기 left join을 했는데, 오프라인 테이블에는 없는 컬럼이 온라인에 있어서 조인 시 오프라인 구매 데이터는 안 남는다full outer join ?-> rdb는 풀 아우터 조인 없음1) left join, right join, union을 모두 사용하거나2) union all 사용 -- 코드를 입력하세요SELECT SUBSTRING(o.SALES_..

DB 2024.09.04