示例零:
SELECT seller_id , RANK() OVER( ORDER BY SUM(price) DESC) AS r ,SUM(price) FROM Sales
結果: 返回一條資料 , 沒有partition 關鍵字,等於是全表做order by , 基於全表 做sum 排序 ,
其實這個sql 有問題.
| seller_id | rk | SUM(price) |
| --------- | -- | ---------- |
| 1 | 1 | 6400 |
示例 一:
SELECT seller_id, RANK() OVER( partition by seller_id ORDER BY SUM(price) DESC) rk
,SUM(price)
FROM Sales
結果也是返回一條資料
| seller_id | rk | SUM(price) |
| --------- | -- | ---------- |
| 1 | 1 | 6400 |
示例二:
SELECT seller_id, RANK() OVER( ORDER BY SUM(price) DESC) rk
,SUM(price)
FROM Sales
GROUP BY seller_id
結果: 如上sql會返回多條資料, 基於 seller_id 做分組了。
| seller_id | rk | SUM(price) |
| --------- | -- | ---------- |
| 1 | 1 | 2800 |
| 3 | 1 | 2800 |
| 2 | 3 | 800 |
示例三:
SELECT seller_id, RANK() OVER( partition by seller_id ORDER BY SUM(price) DESC) rk
,SUM(price)
FROM Sales
GROUP BY seller_id
| seller_id | rk | SUM(price) |
| --------- | -- | ---------- |
| 1 | 1 | 2800 |
| 2 | 1 | 800 |
| 3 | 1 | 2800 |
產品表: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 表的外來鍵(reference 列)。 該表的每一行包含關於一個銷售的一些資訊。 編寫解決方案,找出總銷售額最高的銷售者,如果有並列的,就都展示出來。 以 任意順序 返回結果表。 返回結果格式如下所示。 示例 1: 輸入: 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 | +-----------+------------+----------+------------+----------+-------+ 輸出: +-------------+ | seller_id | +-------------+ | 1 | | 3 | +-------------+ 解釋:Id 為 1 和 3 的銷售者,銷售總金額都為最高的 2800。