-
Notifications
You must be signed in to change notification settings - Fork 22
/
Copy pathProductSalesAnalysis-III.sql
76 lines (66 loc) · 2.43 KB
/
ProductSalesAnalysis-III.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
-- 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.
-- product_id is a foreign key (reference column) to Product table.
-- Each row of this table shows a sale on the product product_id in a certain year.
-- Note that the price is per unit.
-- Table: Product
-- +--------------+---------+
-- | Column Name | Type |
-- +--------------+---------+
-- | product_id | int |
-- | product_name | varchar |
-- +--------------+---------+
-- product_id is the primary key (column with unique values) of this table.
-- Each row of this table indicates the product name of each product.
-- Write a solution to select the product id, year, quantity, and price for the first year of every product sold.
-- Return the resulting table in any order.
-- The result format is in the following example.
-- 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 |
-- +---------+------------+------+----------+-------+
-- Product table:
-- +------------+--------------+
-- | product_id | product_name |
-- +------------+--------------+
-- | 100 | Nokia |
-- | 200 | Apple |
-- | 300 | Samsung |
-- +------------+--------------+
-- Output:
-- +------------+------------+----------+-------+
-- | product_id | first_year | quantity | price |
-- +------------+------------+----------+-------+
-- | 100 | 2008 | 10 | 5000 |
-- | 200 | 2011 | 15 | 9000 |
-- +------------+------------+----------+-------+
-- Write your PostgreSQL query statement below
-- Solution
with first_year as
(
select product_id,
min(year) as first_year
from Sales group by product_id
)
select Sales.product_id,
first_year.first_year,
Sales.quantity,
Sales.price
from Sales inner join first_year
on (Sales.product_id = first_year.product_id
and Sales.year = first_year.first_year)