[Tools] 44

[MySQL] 코드카타 69번 DOUBLE GROUP BY

코딩테스트 연습 - 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr [자료 설명][문제] [나의 답변]SELECT MONTH(START_DATE) AS MONTH, CAR_ID, COUNT(*) AS RECORDS FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE CAR_ID IN (SELECT CAR_ID FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY..

[MySQL] WINDOW FUNTION - RANK, LAG 등

[SELECT 절에서 사용되는 윈도우 함수 기본 문법]SELECT WINDOW_FUNTION () OVER (PARTITION BY CAL1 ORDER BY CAL2 ASC/DESC)FROM TABLE [특징]- GROUP BY와 병행하여 사용할 수 없지만 서브쿼리에는 사용할 수 있다. 종류특징함수순위 ***같으면 같은 등수 부여 후 건너뛰고 순차적 번호 부여1,1,3,4,4,6,7, ...(ORDER BY 필수)RANK()순위같으면 같은 등수 부여 후 순차적 번호 부여1,1,2,2,3,3, ...(ORDER BY 필수)DENSE_RANK()순위 ***같아도 정렬 기준에 따라 연속된 번호 부여1,2,3,4,5,6,7,8, ...(ORDER BY 필수)ROW_NUMBER()집계집계함수와 동일SUM, MAX..

[MySQL] 자주 쓰는 함수들 - UPDATABLE

[CAST (X, as "type") 의 TYPE들] [String 함수]# X와 Y, Z를 순차적으로 합친다. (단, STRING 이어야 함)CONCAT(X, Y, Z, ...)# 중간에 '/' 혹은 ',' 를 넣어서 두 문자열 사이에 병합 문자열을 지정할 수 있음CONCAT(X, '/', Y)# 문자열 혹은 X 대상에서 n 번째 부터 m 개의 STR 을 자를 때SUBSTR(X, n, m)# 해당 문자열 혹은 X 대상에서 구분 기호('/')를 기준으로 n 번째 값을 호출SUBSTR_INDEX(X, '/', n)# X 대상의 문자열을 뒤집는다.REVERSE(X)# X 대상에서 n개의 STR를 추출 (좌측, 우측)LEFT(X,n) / RIGHT(X,n) [Math 함수]# 절대 값ABS(n)# 반올림ROU..

[MySQL] 단일 컬럼 값이 두 개 이상의 속성 값을 갖는 데이터 호출하기

코딩테스트 연습 - 우유와 요거트가 담긴 장바구니 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr CART_ID 에 담긴 여러 품목들의 정보가 있는 CART_PRODUCTS 테이블에서 CART에 MILK와 YOGURT가 담긴 카트만을 추출해야한다. [ 내가 풀었던 방법 (아래)]SELECT M.CART_ID FROM (SELECT CART_ID FROM CART_PRODUCTS WHERE NAME = 'Milk') MJOIN (SELECT CART_ID FROM CART_PRODUCTS W..

[MySQL] WHERE 절 서브쿼리

코딩테스트 연습 - 헤비 유저가 소유한 장소 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 사실 인라인 뷰 서브쿼리를 배우고 혹시나 WHERE 절에 써볼까 도입했다가 스스로 알게되어서 남기는 글...SELECT *FROM PLACESWHERE HOST_ID IN (SELECT HOST_IDFROM PLACESGROUP BY HOST_IDHAVING COUNT(HOST_ID) >= 2)ORDER BY ID

[MySQL] SQL 라이브 섹션 과제 서브쿼리와 JOIN 마무리

정말 긴 여정이였다.오늘은 SQL 라이브 섹션 마지막 문제, 서브쿼리를 이용한 JOIN의 꽃! 진짜..여기 아래 나열된 문제들을 푸는데 걸린시간은 다 해서 4시간 정도 걸린거 같다. 일단 문제와 답안 쿼리를 나열하겠다.. 쿼리만 봐도 데이터가 눈에 훤하다. [데이터 타입]### 문제 1#조건1) 서버별, 월별 게임계정id 수를 중복값 없이 추출해주세요. 월은 첫 접속일자를 기준으로 계산해주세요. 월은 yyyy-mm의 형태로 추출해주세요. #힌트: 월을 추출하는 방법→날짜는 string(문자열) 형식으로 저장되어 있으므로, 문자열을 자르는 함수를 사용해주시면 좋겠죠?SELECT serverno, substr(first_login_date, 1, 7) AS m, count(DISTINCT(game_accou..

[MySQL] YEAR()와 MONTH()를 사용한 DATE TYPE에서 추출

코딩테스트 연습 - 년, 월, 성별 별 상품 구매 회원 수 구하기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr우선 문제는 위 링크 였고, 풀긴 했는데 풀고 나서 다른 사람 답안을 보니.. 나는 너무 돌아온 느낌 (지난번 문제에서 WITH를 알게 되어서 써보고 싶었다.)WITH SALES AS (SELECT USER_ID, SALES_AMOUNT, YEAR(SALES_DATE) AS YEAR, MONTH(SALES_DATE) AS MONTHFROM ONLINE_SALE)SELECT YEAR,..

[MySQL] 전체 자료 중 특정 시점에서 현황 파악하기

조인과 유니온 그리고 서브쿼리만 배운 나로 써는 적잖은 충격을 받았다.우선 문제는 아래와 같다.코딩테스트 연습 - 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr [문제] [예시]필자는 그냥 CAR_ID로 GROUP BY를 하고 그중 MAX(END_DATE) AS AVAILABILITY로 해서 2022-10-16 보다 작으면 대여중, 아니면 대여 가능 으로 접근하려고 했는데,아뿔사,,, RAW DATA인 CAR_RENTAL_COMPANY_RENTA..

[MySQL] 더블 조인이 가능하다??

코딩테스트 연습 - 취소되지 않은 진료 예약 조회하기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 후.. 어제 서브쿼리 배운 여파로 간단한 문제를 인라인 뷰를 통해서 조인을 하려다 꼬여서JOIN을 한 쿼리에서 두번 할 수 있다는 사실을 알고 충격 받아 잊지 않기 위해 글로 남긴다..(아니 수업에선 JOIN 두번 연속 안알랴쥼!)SELECT APNT_NO, PT_NAME, A.PT_NO, A.MCDP_CD, DR_NAME, APNT_YMDFROM APPOINTMENT A JOIN PATIENT ..

[MySQL] JOIN과 CTE의 활용

코딩테스트 연습 - 조건에 맞는 사용자 정보 조회하기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr사실 이 문제에서 핵심은 CONCAT_WS() 함수인데,나는 정답을 맞추고 다른 분들의 풀이를 보고 충격먹었다...우선 CONCAT_WS() 함수는 CONCAT()에서 Seperator를 제공하는 것이다.가령, CONCAT_WS(SEPERATOR, STRING1, STRING2) 라고 하면STRING1 + SEPERATOR + STRING2 로 연결된 값을 출력해 준다.. 이거완전 럭키비키 잖아? 하지만,..