# Write your MySQL query statement below
1069. 产品销售分析 II
销售表:Sales
+-------------+-------+ | Column Name | Type | +-------------+-------+ | sale_id | int | | product_id | int | | year | int | | quantity | int | | price | int | +-------------+-------+ sale_id 是这个表的主键(具有唯一值的列)。 product_id 是 Product 表的外键(reference 列)。 该表的每一行显示产品product_id在某一年的销售情况。 请注意价格是每单位的。
产品表:Product
+--------------+---------+ | Column Name | Type | +--------------+---------+ | product_id | int | | product_name | varchar | +--------------+---------+ product_id 是这个表的主键(具有唯一值的列)。 该表的每一行表示每种产品的产品名称。
编写解决方案,统计每个产品的销售总量。
返回结果表 无顺序要求 。
结果格式如下例子所示。
示例 1:
输入:
Sales
表:
+---------+------------+------+----------+-------+
| sale_id | product_id | year | quantity | price |
+---------+------------+------+----------+-------+
| 1 | 100 | 2008 | 10 | 5000 |
| 2 | 100 | 2009 | 12 | 5000 |
| 7 | 200 | 2011 | 15 | 9000 |
+---------+------------+------+----------+-------+
Product 表:
+------------+--------------+
| product_id | product_name |
+------------+--------------+
| 100 | Nokia |
| 200 | Apple |
| 300 | Samsung |
+------------+--------------+
输出:
+--------------+----------------+
| product_id | total_quantity |
+--------------+----------------+
| 100 | 22 |
| 200 | 15 |
+--------------+----------------+
原站题解
mysql 解法, 执行用时: 757 ms, 内存消耗: 0 B, 提交时间: 2023-10-15 16:56:52
# Write your MySQL query statement below SELECT product_id, sum(quantity) total_quantity FROM sales GROUP BY product_id;
mysql 解法, 执行用时: 998 ms, 内存消耗: 0 B, 提交时间: 2023-10-15 16:56:35
select product_id, sum(quantity) as total_quantity from Sales group by product_id # group by 1 是一样的 # 注意缩进提升可读性
pythondata 解法, 执行用时: 284 ms, 内存消耗: 61.9 MB, 提交时间: 2023-10-15 16:56:23
import pandas as pd def sales_analysis(sales: pd.DataFrame, product: pd.DataFrame) -> pd.DataFrame: return sales.groupby(['product_id'])['quantity'].sum()\ .rename('total_quantity').reset_index() # to_frame()不行! index的内容被自动忽略了