일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 파이썬
- 약수구하기
- join
- 코딩테스트
- SQL
- 셀프조인
- with절
- 위키독스
- 윈도우함수
- GROUPBY
- 프로그래머스문풀
- sql문풀
- leetcode문풀
- SQL고득점KIT
- 리트코드sql
- With
- 코테
- 데이터분석
- leetcodesql50
- UNION
- 활성사용자수
- 서브쿼리
- mysql
- 데이터리안
- 문풀
- 프로그래머스
- SQL테스트
- 파이썬문풀
- levle1
- leetcode
- Today
- Total
목록sql문풀 (21)
꿈은 데이터분석가, 취미는 계획
출처: [Leetcode - 1280. Students and Examinations 문제(일부): 학생정보(학생 id, 학생이름), 과목이름, 시험정보(학생id, 학생이름) 테이블을 사용, 학생별로 응시한 과목의 시험 수 count하기JOIN 사용하기1) Students테이블과 Subjects 테이블을 조인조건 없이 JOIN, 카티션 곱으로 모든 학생에게 동일하게 과목을 모두 매칭2) LEFT JOIN으로 Examinations에 없는(=응시하지 않은 과목)도 count할 수 있게 함3) 학생이름과 과목으로 groupby하여 count, 학생별 과목별 시험 수를 cntSELECT st.Student_id, st.Student_name, su.subject_name, count(e.subject_na..
출처: [Leetcode - 1683. Invalid Tweets 문제(일부): content의 길이가 15이상인 id찾기LENGTH VS CHAR_LENGTHMY SQL에서는 글자 수를 세는 방법으로 위의 2가지 방법이 있다.차이점은 LENGTH는 문자열의 길이를 가져오고, CHAR_LENGTH는 문자열의 길이를 가져옵니다. (UTF-8의 경우)영어의 경우 문자당 1개의 바이트지만, 한글은 문자당 3바이트로어떤 것을 쓰는지에 따라 차이가 발생합니다!EX) 안녕 / Hi => CHAR_LENGTH를 쓰는 경우 문자열의 길이가 같으므로 2를 출력=> LENGTH를 쓰는 경우 한글인 '안녕'은 6을 출력, 영어인 'Hi'는 2를 출력
출처: [Leetcode - 1070. Product Sales Analysis III] 문제(일부): 제품별로 첫번째로 구매된 해의 정보 조회하기1. WITH 절 + INNER JOIN 1) WITH절에서 제품별 최초로 판매된 해를 추출2) 원본 테이블과 join, product_id와 year가 일치하는 조건# 제품별로 판매된 첫 해를 추출WITH first_year AS ( SELECT product_id, MIN(year) AS first_year FROM sales GROUP BY product_id)# 원본테이블과 join하여 첫해의 정보를 조회SELECT s.product_id ,s.year AS first_year ,s.quantity ..
출처: [Leetcode - SQL50] : 1193. Monthly Transactions링크: https://leetcode.com/problems/monthly-transactions-i/description/?envType=study-plan-v2&envId=top-sql-50문제(일부): 월별, 나라별로 거래수와 거래금액, 승인된 거래수와 거래금액1. CASE WHEN구문 활용0) 월별 나라별로 거래수와 거래금액, "승인된"필터링 조건의 거래수와 거래금액을 같이 조회해야 함1) 월별, 나라별로 보기 위해 group by를 사용2) 전체 거래수와 거래금액은 집계함수를 사용3) CASE WHEN구문으로 승인된 거래수와 거래금액을 각각 조회하는 컬럼 생성 => 거래수를 계산할 때 ..
출처: [프로그래머스 스쿨 - 코딩테스트 연습 - MY SQL 문제] : 오프라인/온라인 판매 데이터 통합하기링크: https://school.programmers.co.kr/learn/courses/30/lessons/131537문제(일부): 온/오프라인의 판매 테이블을 출력, 오프라인 테이블의 USER_ID는 NULL로 표시UNION ALL로 2개의 테이블 합치기1) 기간을 설정한 온,오프라인의 2개 테이블을 UNION ALL로 합치기2) 오프라인의 경우 USER_ID가 NULL로 나올 수 있게 NULL값으로 채운 컬럼을 생성SELECT DATE_FORMAT(SALES_DATE,'%Y-%m-%d') AS SALES_DATE ,PRODUCT_ID ,USER_ID ..
출처: [프로그래머스 스쿨 - 코딩테스트 연습 - MY SQL 문제] : 업그레이드 할 수 없는 아이템 구하기링크: https://school.programmers.co.kr/learn/courses/30/lessons/131124문제(일부): 부모, 자식관계를 활용하여 더 이상 업그레이드 할 수 없는 아이템 구하기SELF JOIN과 WITH절 사용하기1) WITH절에서 SELF JOIN, WHERE 절에서 PARENT_ID가 NULL인 값(업그레이드 x)을 추출2) 메인쿼리에서 아이템정보 테이블과 JOIN하여 더 이상 업그레이드 할 수 없는 아이템의 정보 조회WITH NOT_UPGRADE AS( SELECT i1.ITEM_ID FROM ITEM_TREE AS i1 ..