这是问题陈述 编写一个解决方案来选择每个销售产品的第一年的产品 ID、年份、数量和价格。
输入: 销售表:
+---------+------------+------+----------+-------+
| 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 |
+------------+------------+----------+-------+
我的解决方案
select product_id, min(year) as first_year, quantity, price from Sales
GROUP BY product_id;
此解决方案为何不完整?为什么此查询通过了 1 个测试用例而其余测试用例失败?
解决方案如下: 选择product_id,年份作为first_year,数量,价格来自 (从销售订单中选择*,按年份升序限制100000)按product_id分组
1.按年份对数据进行排序(排序时限制很重要,不排序则排序无效) 2.分组依据