1082. 销售分析 I
产品表:Product
Column Name | Type |
---|---|
product_id | int |
product_name | varchar |
unit_price | int |
product_id 是这个表的主键.
销售表:Sales
Column Name | Type |
---|---|
seller_id | int |
product_id | int |
buyer_id | int |
sale_date | date |
quantity | int |
price | int |
这个表没有主键,它可以有重复的行.
product_id 是 Product 表的外键.
编写一个 SQL 查询,查询总销售额最高的销售者,如果有并列的,就都展示出来。
查询结果格式如下所示:
Product 表:
product_id | product_name | unit_price |
---|---|---|
1 | S8 | 1000 |
2 | G4 | 800 |
3 | iPhone | 1400 |
Sales 表:
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 |
Result 表:
seller_id |
---|
1 |
3 |
Id 为 1 和 3 的销售者,销售总金额都为最高的 2800。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sales-analysis-i
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路
- 统计每个销售员的总业绩
SELECT
seller_id,
sum( price ) AS yeji
FROM
Sales
GROUP BY
seller_id;
- 然后找到最高的业绩
SELECT
sum( price ) AS ye_ji
FROM
Sales
GROUP BY
seller_id
ORDER BY
ye_ji DESC
LIMIT 1
- 从原始表中找到业绩与这个最高业绩相等的 seller_id
SELECT
seller_id
FROM
sales
GROUP BY
seller_id
HAVING
SUM( price ) = ( SELECT max( sales_total ) FROM ( SELECT seller_id, SUM( price ) AS sales_total FROM sales GROUP BY seller_id ) sub1 )
1098.小众书籍
书籍表 Books:
Column Name | Type |
---|---|
book_id | int |
name | varchar |
available_from | date |
book_id 是这个表的主键。
订单表 Orders:
Column Name | Type |
---|---|
order_id | int |
book_id | int |
quantity | int |
dispatch_date | date |
order_id 是这个表的主键。
book_id 是 Books 表的外键。
你需要写一段 SQL 命令,筛选出订单总量 少于10本 的 书籍 。
注意:不考虑 上架(available from)距今 不满一个月 的书籍。并且 假设今天是 2019-06-23 。
下面是样例输出结果:
Books 表:
book_id | name | available_from |
---|---|---|
1 | “Kalila And Demna” | 2010-01-01 |
2 | “28 Letters” | 2012-05-12 |
3 | “The Hobbit” | 2019-06-10 |
4 | “13 Reasons Why”< |