產品表: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。
思路:查出所有seller的銷售額,然后查大于等于所有銷售額的selleer。
select seller_id
from sales
group by seller_id
having sum(price) >= all(select sum(price) from sales group by seller_id);
?