+--------------+---------+
| Column Name | Type |
+--------------+---------+
| product_id | int |
| product_name | varchar |
| unit_price | int |
+--------------+---------+
product_id is the primary key (column with unique values) of this table.
Each row of this table indicates the name and the price of each product.
Table: Sales
+-------------+---------+
| Column Name | Type |
+-------------+---------+
| seller_id | int |
| product_id | int |
| buyer_id | int |
| sale_date | date |
| quantity | int |
| price | int |
+-------------+---------+
This table can have repeated rows.
product_id is a foreign key (reference column) to the Product table.
Each row of this table contains some information about one sale.
Write a solution that reports the best seller by total sales price, If there is a tie, report them all.
Input:
Product table:+------------+--------------+------------+| product_id | product_name | unit_price |+------------+--------------+------------+|1| S8 |1000||2| G4 |800||3| iPhone |1400|+------------+--------------+------------+Sales table:+-----------+------------+----------+------------+----------+-------+| seller_id | product_id | buyer_id | sale_date | quantity | price |+-----------+------------+----------+------------+----------+-------+|1|1|1|2019-01-21|2|2000||1|2|2|2019-02-17|1|800||2|2|3|2019-06-02|1|800||3|3|4|2019-05-13|2|2800|+-----------+------------+----------+------------+----------+-------+Output:
+-------------+| seller_id |+-------------+|1||3|+-------------+Explanation: Both sellers with id 1 and 3 sold products with the most total price of 2800.
SELECT seller_id
FROM (
SELECT seller_id, SUM(price) AS total
FROM Sales
GROUPBY seller_id
) t
WHERE total = (SELECTMAX(total) FROM (SELECTSUM(price) AS total FROM Sales GROUPBY seller_id) x);
1
2
3
4
5
6
7
SELECT seller_id
FROM (
SELECT seller_id, SUM(price) AS total
FROM Sales
GROUPBY seller_id
) t
WHERE total = (SELECTMAX(total) FROM (SELECTSUM(price) AS total FROM Sales GROUPBY seller_id) x);
1
2
3
4
5
6
7
8
# Sales is a pandas DataFrameimport pandas as pd
defsales_analysis_i(Sales):
totals = Sales.groupby('seller_id')['price'].sum()
max_total = totals.max()
result = totals[totals == max_total].index.to_frame(index=False)
return result
# result = sales_analysis_i(Sales)