示例零:
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。
标签:product,SUM,1082,price,leetcode,seller,开窗,id,rk From: https://www.cnblogs.com/mengbin0546/p/18369238