Skip to main content
Back to problems
#1070
Medium Database

Product sales analysis iii

Database
45.7% acceptance
Feb 27, 2026
760
1122
Table: Sales +-------------+-------+ | Column Name | Type | +-------------+-------+ | sale_id | int | | product_id | int | | year | int | | quantity | int | | price | int | +-------------+-------+ (sale_id, year) is the primary key (combination of columns with unique values) of this table. Each row records a sale of a product in a given year. A product may have multiple sales entries in the same year. Note that the per-unit price. Write a solution to find all sales that occurred in the first year each product was sold. For each product_id, identify the earliest year it appears in the Sales table. Return all sales entries for that product in that year. Return a table with the following columns: product_id, first_year, quantity, and price. Return the result in any order.

Solution

SQL
LeetCode
solution.sql
#
# Table: Sales
# +-------------+-------+
# | Column Name | Type  |
# +-------------+-------+
# | sale_id     | int   |
# | product_id  | int   |
# | year        | int   |
# | quantity    | int   |
# | price       | int   |
# +-------------+-------+
# (sale_id, year) is the primary key (combination of columns with unique values) of this table.
# Each row records a sale of a product in a given year.
# A product may have multiple sales entries in the same year.
# Note that the per-unit price.
# Write a solution to find all sales that occurred in the first year each product was sold.
# For each product_id, identify the earliest year it appears in the Sales table.
# Return all sales entries for that product in that year.
# Return a table with the following columns: product_id, first_year, quantity, and price.
# Return the result in any order.
# Example 1:
# Input:
# Sales table:
# +---------+------------+------+----------+-------+
# | sale_id | product_id | year | quantity | price |
# +---------+------------+------+----------+-------+
# | 1       | 100        | 2008 | 10       | 5000  |
# | 2       | 100        | 2009 | 12       | 5000  |
# | 7       | 200        | 2011 | 15       | 9000  |
# +---------+------------+------+----------+-------+
# Output:
# +------------+------------+----------+-------+
# | product_id | first_year | quantity | price |
# +------------+------------+----------+-------+
# | 100        | 2008       | 10       | 5000  |
# | 200        | 2011       | 15       | 9000  |
# +------------+------------+----------+-------+
#

# Write your MySQL query statement below

SELECT s.product_id, s.year AS first_year, s.quantity, s.price
FROM Sales s
JOIN (
  SELECT product_id, MIN(year) AS first_year
  FROM Sales
  GROUP BY product_id
) t ON s.product_id = t.product_id AND s.year = t.first_year;