일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- SQL고득점KIT
- 코테
- 데이터분석
- 약수구하기
- levle1
- mysql
- 프로그래머스문풀
- SQL
- 위키독스
- 코딩테스트
- leetcode
- 리트코드sql
- join
- 문풀
- UNION
- 파이썬
- 셀프조인
- GROUPBY
- With
- 파이썬문풀
- 윈도우함수
- leetcode문풀
- 활성사용자수
- 데이터리안
- 서브쿼리
- SQL테스트
- leetcodesql50
- with절
- 프로그래머스
- sql문풀
- Today
- Total
목록SQL (36)
꿈은 데이터분석가, 취미는 계획
0. MY SQL의 DATETIME 이해하기DATEDIFF는 DATE와 DATETIME에만 적용 가능,TIMESTAMPDIFF 는 DATETIME과 TIMESTAMP형식의 데이터에만 적용 가능 단, MYSQL에서는 VARCHAR 형식임에도 불구하고, DATEDIFF 및 TIMESTAMPDIFF 함수 사용 시이를 날짜/시간 형식으로 인식하여 처리(내부적으로 문자열을 적절하게 파싱하여 처리하기 때문)1. DATEDIFF()2개 날짜의 차이를 반환ex) DATEDIFF( '2020-07-21T10:34:51', '2020-07-20T9:34:50') => 1DATEDIFF(date1, date2)2. TIMESTAMPDIFF ()2개 차이를 지정한 단위로 반환ex) TIMESTAMPDIFF( MINUTE, '..
출처: [프로그래머스 스쿨 - 코딩테스트 연습 - MY SQL 문제] : 멸종위기의 대장균 찾기링크: https://school.programmers.co.kr/learn/courses/30/lessons/301651문제(일부): 세대별로 자식이 없는 개체의 수와 세대를 출력재귀쿼리 사용하기풀이원본: https://school.programmers.co.kr/questions/76223 1) 재귀쿼리로 세대를 구분하는 임시테이블 생성1-1) 임시테이블의 첫번째 쿼리는 초기값으로 1세대로 지정(PARENT_ID가 NULL = 1세대)1-2) UNION ALL 아래의 두번째 쿼리는 재귀쿼리로 PARENT_ID와 매칭되는 ID가 없을 때 까지 반복하여 세대를 구분 *재귀쿼리에 대한 설명: https://o..
출처: [프로그래머스 스쿨 - 코딩테스트 연습 - MY SQL 문제] : 특정 세대의 대장균 찾기링크: https://school.programmers.co.kr/learn/courses/30/lessons/301650문제(일부): 3세대 대장균ID를 출력하는 SQL작성1. 중첩된 서브쿼리 사용하기0) WHERE절에서 IN연산자로 ID와 PARENT_ID의 세대관계를 확인1) 가장 내부의 서브쿼리는 PARENT_ID가 NULL인, 즉 1세대에 해당하는 모든 ID를 찾음2) 두번째 서브쿼리는 1세대 ID에서 분화 된 2세대 ID를 찾음3) 세번째 서브쿼리는 2세대 ID에서 분화 된 3세대 ID를 찾음 -- 3세대 IDSELECT IDFROM ECOLI_DATAWHERE PARENT_ID IN ( ..
출처: [프로그래머스 스쿨 - 코딩테스트 연습 - MY SQL 문제] : 자동차 대여 기록 별 대여 금액 구하기링크: https://school.programmers.co.kr/learn/courses/30/lessons/151141문제(일부): 요금테이블, 대여이력 테이블, 기간별 할인율 테이블을 사용하여 차종이 트럭인 대여기록별 대여금액 구하기1. 서브쿼리 활용1) 요금테이블과 대여이력 테이블을 JOIN2) WHERE절에서 차종이 트럭인 것으로 필터링3) 대여기간*요금*기간별할인율3-1) 기간별 할인율은 서브쿼리를 사용3-1-1) WHERE절에 CASE문을 활용하여 기간별 할인율 타입 사용, COALESCE로 할인율이 없는 경우 1을 사용SELECT H.HISTORY_ID, FLOOR..
출처: [프로그래머스 스쿨 - 코딩테스트 연습 - MY SQL 문제] : 그룹별 조건에 맞는 식당 목록 출력하기링크: https://school.programmers.co.kr/learn/courses/30/lessons/164670문제(일부): 리뷰가 3개 이상인 작성자 정보 조회하기0. CONCAT, SUBSTRING 이해하기CONCAT은 인수들을 연결하는 함수SUBSTRING(컬럼, 시작위치, 길이): 컬럼에서 시작위치부터 지정한 길이만큼 출력1. 서브쿼리 활용하기1) WITH절에서 리뷰를 3개 이상 남긴 ID를 선택2) 메인쿼리에서 CONCAT_WS로 공백을 넣어 주소를 합침 SUBSTRING으로 전화번호의 3 / 4 / 4자리를 추출하고 CONCAT으로 연결3) WHERE절에서 서브쿼리..
출처: [프로그래머스 스쿨 - 코딩테스트 연습 - MY SQL 문제] : FrontEnd 개발자 찾기링크: https://school.programmers.co.kr/learn/courses/30/lessons/276035문제(일부): 스킬코드 정보 테이블과 개발자 정보 테이블을 통해 "Front End'스킬을 가진 개발자 정보를 조회1. WITH절과 서브쿼리 활용풀이0) 실수한 POINT 2개의 테이블을 JOIN했을 때 여러 스킬을 보유한 경우 중복된 개발자 정보 레코드가 발생함 => 중복을 고려한 쿼리 작성필요1) 2개 테이블을 JOIN ON 조건에 &연산자를 사용하여 스킬코드 테이블의 스킬을 보유한 개발자 선택 WEHRE절에서 카테고리가 "Front End"인 것으로 ..