Skip to content

1068. Product Sales Analysis I

Problem Statement

Table: Sales

Column NameType
sale_idint
product_idint
yearint
quantityint
priceint

(sale_id, year) is the primary key (combination of columns with unique values) of this table.

product_id is a foreign key (reference column) to Product table.

Note that the price is per unit.

Table: Product

Column NameType
product_idint
product_namevarchar

product_id is the primary key of this table.

Each row of this table indicates the product name of each product.

Instructions

  • Write a solution to report the product_name, year, and price for each sale_id in the Sales table.
  • Return the resulting table in any order.
  • The result format is in the following example.

Example

Input:

Sales table

sale_idproduct_idyearquantityprice
11002008105000
21002009125000
72002011159000

Product table

product_idproduct_name
100Nokia
200Apple
300Samsung

Output:

product_nameyearprice
Nokia20085000
Nokia20095000
Apple20119000

Explanation:

From sale_id = 1, we can conclude that Nokia was sold for 5000 in the year 2008.

From sale_id = 2, we can conclude that Nokia was sold for 5000 in the year 2009.

From sale_id = 7, we can conclude that Apple was sold for 9000 in the year 2011.

Submissions

sql
SELECT p.product_name, s.year, s.price
FROM Sales s
JOIN Product p ON s.product_id = p.product_id
sql
SELECT p.product_name, s.year, s.price
FROM Sales s
JOIN Product p ON s.product_id = p.product_id
sql
SELECT p.product_name, s.year, s.price
FROM Sales s
JOIN Product p ON s.product_id = p.product_id
python
import pandas as pd

def sales_analysis(sales: pd.DataFrame, product: pd.DataFrame) -> pd.DataFrame:
    merged_df = pd.merge(sales, product, on='product_id')
    result_df = merged_df[['product_name', 'year', 'price']]

    return result_df

Explanations

PostgreSQL, MySQL, & MS SQL Server
Submitted by @noeyislearning
  • SELECT p.product_name, s.year, s.price: This query selects the product_name, year, and price columns from the Product and Sales tables.
  • FROM Sales s: This part of the statement specifies the table from which you want to retrieve the data. Here, Sales is the table, and it's aliased as s.
  • JOIN Product p ON s.product_id = p.product_id: This clause joins the Sales and Product tables on the product_id column, linking the two tables based on this common column.
Pandas
Submitted by @noeyislearning