https://leetcode.com/problems/product-sales-analysis-iii/?envType=study-plan-v2&envId=top-sql-50
🗒️SQL 코드 풀이
SELECT A.product_id , A.year AS first_year ,quantity ,price
FROM
Sales A
INNER JOIN
(
SELECT product_id , MIN(year) AS year
FROM Sales
GROUP BY product_id
)B
ON A.product_id = B.product_id
AND A.year = B.year
1. product_id로 GROUP BY 하고, product_id와 MIN(year) 를 SELECT 한다.
2. 이후 INNER JOIN 하고, 문제에서 요구하는 컬럼을 SELECT 하면 된다.
나의 잘 못 된 풀이 1
SELECT product_id, MIN(year) AS first_year, quantity, price
FROM Sales
GROUP BY product_id;
- 맨 처음 작성했던 코드로 예제 문제는 통과하지만, 실제 테스트 케이스에서 막힌다.
- 문제가 GROUP BY하고, MIN 값을 추출 한 부분이다.
- MIN(year)는 가장 작은 연도를 정확하게 찾지만, quantity, price는 임의로 선택 됨
📌 문제 코멘트
해당 문제를 포스팅하는 이유는 다음과 같다
- GROUP BY에 MIN 을 했을 떄, 그 이외의 값들이 임의로 선택되는 것을 몰랐음
📚문제
'♟️ 알고리즘 > Leetcode' 카테고리의 다른 글
Leetcode[MySQL][Leet Code] 619. Biggest Single Number (0) | 2025.03.05 |
---|---|
[MySQL][Leet Code] 550. Game Play Analysis IV (Medium) (0) | 2025.03.04 |
[MySQL][Leet Code] 1174. Immediate Food Delivery II (Medium) (0) | 2025.03.04 |
[MySQL][Leet Code] 1633. Percentage of Users Attended a Contest (Easy) (1) | 2025.02.18 |
[MySQL][Leet Code] 1251. Average Selling Price (Easy) (0) | 2025.02.18 |