목록Mysql (14)
imhamburger 님의 블로그
CONCAT과 GROUP_CONCAT은 둘다 문자열을 합칠 때 사용한다.그렇지만 사용 목적과 동작 단위가 근본적으로 다르다.단순 비교 대상이라기보다는 “행 단위 vs 집계 단위” 함수로 구분해야 한다. CONCAT: 행 단위 문자열 결합SELECT CONCAT(first_name, ' ', last_name) AS full_nameFROM users;first_namelast_namefull_nameBurgerHamBurger Ham GROUP_CONCAT: 여러 행을 하나의 문자열로 집계SELECT user_id, GROUP_CONCAT(product_name) AS productsFROM ordersGROUP BY user_id;user_idproducts1Apple,Banana,Orange 근..
문제https://leetcode.com/problems/analyze-subscription-conversion/description/ 구독형 서비스에서 사용자 행동 패턴을 분석하려고 한다.해당 서비스는 7일간의 무료 체험 기간을 제공하며, 이후 사용자는 유료 구독으로 전환하거나 취소할 수 있다.다음 요구사항을 만족하는 해결책을 작성하시오.무료 체험에서 유료 구독으로 전환한 사용자를 찾는다.각 사용자의 무료 체험 기간 동안의 일 평균 활동 시간을 계산한다.소수점 둘째 자리까지 반올림한다.각 사용자의 유료 구독 기간 동안의 일 평균 활동 시간을 계산한다.소수점 둘째 자리까지 반올림한다.결과 테이블은 user_id 기준 오름차순으로 정렬하여 반환한다. 문제풀이SELECT *FROM (SELECT user_..
문제https://leetcode.com/problems/seasonal-sales-analysis/description/ 각 계절별로 가장 인기 있는 상품 카테고리를 찾기 계절은 다음과 같이 정의겨울(Winter): 12월, 1월, 2월봄(Spring): 3월, 4월, 5월여름(Summer): 6월, 7월, 8월가을(Fall): 9월, 10월, 11월카테고리의 인기도는 해당 계절 동안 판매된 총 수량(quantity) 을 기준으로 결정.만약 판매 수량이 동일한 카테고리가 여러 개라면, 총 매출액(수량 × 가격) 이 가장 높은 카테고리를 선택.결과 테이블은 계절을 기준으로 오름차순 정렬하여 반환. 문제풀이WITH t1 AS (SELECT *, ROW_NUMBER() OVER(PARTITIO..
문제주어진 택시 요청(trip) 데이터에서 취소율(Cancellation Rate)을 계산하려고 한다. 1. 취소율 정의취소율은 다음과 같이 계산한다. 취소된 요청 수:해당 날짜에 발생한 요청 중 요청 상태(status)가 cancelled_by_client 또는 cancelled_by_driver 이고 클라이언트와 드라이버 모두 차단(banned)되지 않은 요청 수전체 요청 수:해당 날짜에 발생한 요청 중 클라이언트와 드라이버 모두 차단되지 않은 전체 요청 수 2. 조건클라이언트와 드라이버 모두 unbanned (banned = 'No') 인 요청만 고려날짜 범위는 2013-10-01 ~ 2013-10-03해당 날짜에 최소 1건 이상의 요청이 있는 날만 결과에 포함취소율은 소수점 둘째 자리까지 반올림문..
문제요약 Weather Observation Station 20 | HackerRankQuery the median of Northern Latitudes in STATION and round to 4 decimal places.www.hackerrank.comLAT_N의 중앙값 구하기소수점 넷째자리까지 반올림하기 문제풀이나는 Mysql이 더 익숙해서 Mysql로 풀었다.Mysql은 Oracle에서 지원하는 median 함수가 지원되지 않아 살짝 더? 복잡하게 풀어야 한다.SELECT ROUND(LAT_N,4)FROM(SELECT LAT_N, PERCENT_RANK() OVER (ORDER BY LAT_N) tmp FROM STATION)WHERE tmp = 0.5; PERCENT_RANK()는 ..
오랜만에 sql 코테를 풀어보았다. 해커랭크는 영어라 한국어로 번역해서 풀어야 한다. Binary Tree Nodes | HackerRankWrite a query to find the node type of BST ordered by the value of the node.www.hackerrank.com 문제요약입력은 테이블 BST(N, P) — 각 행이 트리의 노드 N 과 그 부모 P각 노드 N 에 대해 그 노드가 트리에서 Root, Inner, 또는 Leaf 중 어느 타입인지 판별Root: 부모가 없는 노드 (즉, P IS NULL) Inner: 부모가 있고, 동시에 자식이 있는 노드 (즉, 다른 노드가 자신의 자식으로 이 노드를 부모로 참조)Leaf: 자식이 없는 노드 (즉, 아무도 이 노드를..
문제Harry Potter and his friends are at Ollivander's with Ron, finally replacing Charlie's old broken wand.Hermione decides the best way to choose is by determining the minimum number of gold galleons needed to buy each non-evil wand of high power and age. Write a query to print the id, age, coins_needed, and power of the wands that Ron's interested in, sorted in order of descending power. If more..
문제http://school.programmers.co.kr/learn/courses/30/lessons/157339 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 설명다음은 어느 자동차 대여 회사에서 대여 중인 자동차들의 정보를 담은 CAR_RENTAL_COMPANY_CAR 테이블과 자동차 대여 기록 정보를 담은 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 자동차 종류 별 대여 기간 종류 별 할인 정책 정보를 담은 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블 입니다.CAR_RENTAL_COMPANY_CAR 테이블은 아래와 같은 구조로 되어있으며, ..
문제https://school.programmers.co.kr/learn/courses/30/lessons/132202#qna 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 설명다음은 종합병원의 진료 예약정보를 담은 APPOINTMENT 테이블 입니다.APPOINTMENT 테이블은 다음과 같으며 APNT_YMD, APNT_NO, PT_NO, MCDP_CD, MDDR_ID, APNT_CNCL_YN, APNT_CNCL_YMD는 각각 진료예약일시, 진료예약번호, 환자번호, 진료과코드, 의사ID, 예약취소여부, 예약취소날짜를 나타냅니다. 문제APPOINTMENT 테이블에서 2022년 5월에 예약한 ..
문제출처https://school.programmers.co.kr/learn/courses/30/lessons/131124 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 설명다음은 고객의 정보를 담은 MEMBER_PROFILE테이블과 식당의 리뷰 정보를 담은 REST_REVIEW 테이블입니다.MEMBER_PROFILE 테이블은 다음과 같으며 MEMBER_ID, MEMBER_NAME, TLNO, GENDER, DATE_OF_BIRTH는 회원 ID, 회원 이름, 회원 연락처, 성별, 생년월일을 의미합니다. REST_REVIEW 테이블은 다음과 같으며 REVIEW_ID, REST_ID, MEMBER_..