분류 전체보기(29)
-
[LeetCode SQL 50] 1164. Product Price at a Given Date
https://leetcode.com/problems/product-price-at-a-given-date/description/?envType=study-plan-v2&envId=top-sql-50 문제2019년 8월 16일의 모든 상품의 가격을 출력하라.모든 상품의 가격이 변경되기 전에는 10으로 설정되어 있다고 가정한다. 풀이SELECT p1.product_id, COALESCE(p2.new_price, 10) AS priceFROM ( SELECT DISTINCT product_id FROM Products) p1LEFT JOIN Products p2 ON p1.product_id = p2.product_id AND p2.change_date = ( SELECT M..
2024.06.10 -
[LeetCode SQL 50] 1341. Movie Rating
https://leetcode.com/problems/movie-rating/description/?envType=study-plan-v2&envId=top-sql-50 문제가장 많은 영화에 평점을 매긴 사용자의 이름을 찾습니다. 동점인 경우, 사전순으로 더 앞의 사용자 이름을 반환합니다.2020년 2월에 평균 평점이 가장 높은 영화의 이름을 찾습니다. 동점인 경우, 사전순으로 더 앞의 영화 이름을 반환합니다. 풀이SELECT name AS resultsFROM UsersWHERE user_id = ( SELECT user_id FROM ( SELECT user_id, COUNT(DISTINCT movie_id) AS num_rated_movies FROM Mov..
2024.06.10 -
[프로그래머스 SQL] Lv.4 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기
코딩테스트 연습 > JOIN > 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (Lv.4) 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제다음은 어느 자동차 대여 회사에서 대여 중인 자동차들의 정보를 담은 CAR_RENTAL_COMPANY_CAR 테이블과 자동차 대여 기록 정보를 담은 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 자동차 종류 별 대여 기간 종류 별 할인 정책 정보를 담은 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블 입니다.CAR_RENTAL_COMPANY_CAR 테이블은 아래와 같은 ..
2024.05.25 -
[프로그래머스 SQL] Lv.3 업그레이드 할 수 없는 아이템 구하기
코딩테스트 연습 > IS NULL > 업그레이드 할 수 없는 아이템 구하기 (Lv.3) 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제어느 한 게임에서 사용되는 아이템들은 업그레이드가 가능합니다.'ITEM_A' → 'ITEM_B'와 같이 업그레이드가 가능할 때'ITEM_A'를 'ITEM_B'의 PARENT 아이템,PARENT 아이템이 없는 아이템을 ROOT 아이템이라고 합니다.예를 들어 'ITEM_A' → 'ITEM_B' → 'ITEM_C' 와 같이 업그레이드가 가능한 아이템이 있다면'ITEM_C'의 PARENT 아이템은 'ITEM_B''ITEM_B'의..
2024.05.25 -
SQL 윈도우 함수 - PARTITION BY와 ORDER BY의 역할
PARTITION BY와 ORDER BY는 SQL의 윈도우 함수의 작동 방식을 정의하는 데 사용된다.구체적으로 RANK 함수에서 이 두 절의 차이점과 역할을 살펴보자. PARTITION BYPARTITION BY 절은 데이터 세트를 하나 이상의 컬럼에 따라 분할하는 역할을 한다.PARTITION BY를 적용하면, 각 파티션 내에서 독립적으로 윈도우 함수가 적용된다.즉, 데이터 세트를 작은 그룹으로 나누고 각 그룹 내에서 RANK가 계산된다. ORDER BYORDER BY 절은 각 파티션 내에서 행의 순서를 정의한다. 순서는 RANK를 계산할 때의 기준이 된다.RANK는 데이터 세트의 특정 값이 파티션 내에서 차지하는 순위를 결정하기 때문에, 데이터가 어떤 순서로 정렬되어야 할지에 따라 ORDER BY 뒤..
2024.05.25 -
[프로그래머스 SQL] Lv.3 대장균의 크기에 따라 분류하기 2
코딩테스트 연습 > SELECT 대장균의 크기에 따라 분류하기 2 (Lv.3) 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제대장균 개체의 크기를 내름차순으로 정렬했을 때 상위 0% ~ 25% 를 'CRITICAL', 26% ~ 50% 를 'HIGH', 51% ~ 75% 를 'MEDIUM', 76% ~ 100% 를 'LOW' 라고 분류합니다. 대장균 개체의 ID(ID) 와 분류된 이름(COLONY_NAME)을 출력하는 SQL 문을 작성해주세요. 이때 결과는 개체의 ID 에 대해 오름차순 정렬해주세요 . 단, 총 데이터의 수는 4의 배수이며 같은 사이..
2024.05.25 -
[프로그래머스 SQL] Lv.4 그룹별 조건에 맞는 식당 목록 출력하기
코딩테스트 연습 > JOIN > 그룹별 조건에 맞는 식당 목록 출력하기 (Lv.4) 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제MEMBER_PROFILE와 REST_REVIEW 테이블에서 리뷰를 가장 많이 작성한 회원의 리뷰들을 조회하는 SQL문을 작성해주세요. 회원 이름, 리뷰 텍스트, 리뷰 작성일이 출력되도록 작성해주시고, 결과는 리뷰 작성일을 기준으로 오름차순, 리뷰 작성일이 같다면 리뷰 텍스트를 기준으로 오름차순 정렬해주세요. 풀이 1)리뷰를 가장 많이 작성한 회원이 한 명이라고 가정하는 경우WITH TOP AS ( SELECT ME..
2024.05.24 -
Trino 환경에서 문자열의 숫자 변환 (CAST AS decimal)
문자타입의 값을 숫자타입으로 변환하여 SUM 하는 SQL 쿼리를 작성하던 중 SELECT SUM(CAST(column_name AS numeric)) FROM table_name; 위 코드를 trino 환경에서 사용시, 다음과 같은 오류가 발생하는데, Query failed (#20230427_021434_00012_agk3f): line 3:12: Unknown type: numeric Trino에서는 numeric 데이터 타입을 지원하지 않아서 발생하는 문제! 대신, decimal 데이터 타입을 사용할 수 있다. 따라서, 위에서 제공한 SQL 쿼리에서 numeric 대신 decimal을 사용해야 한다. SELECT SUM(CAST(column_name AS decimal)) FROM table_name;
2023.04.27 -
SQL에서 한 컬럼 안에 있는 특정 값들의 수를 세서 여러개의 컬럼으로 분리하기
CASE WHEN과 SUM 함수를 사용하여 각각의 값을 계산하고, GROUP BY절을 사용하여 그룹별로 결과를 나눔 다음과 같은 sales 테이블이 있다고 가정할 때, +----+-----------+ | id | product | +----+-----------+ | 1 | A | | 2 | B | | 3 | A | | 4 | C | | 5 | B | | 6 | A | | 7 | A | | 8 | B | +----+-----------+ 이 테이블에서 product 컬럼 안에 있는 각각의 값(A, B, C)이 몇 번 나타나는지를 구해서, 다음과 같은 결과를 얻고 싶다면 +--------+--------+--------+ | A | B | C | +--------+--------+--------+ | 4..
2023.04.14