假设您正在为一家销售公司管理数据库。该数据库包含一个名为 Sales 的表,用于记录销售交易。您需要找出每个销售人员的第五高销售额。
按销售人员 ID 升序排列。 表架构如下: 销售量 列名 数据类型 交易ID int salesperson_id int 整数 金额小数(10, 2) transaction_date 日期。
解决此问题的简单方法是使用带有窗口函数的公共表表达式 (CTE)。
WITH RankedSales AS (
SELECT
salesperson_id,
amount,
ROW_NUMBER() OVER (PARTITION BY salesperson_id ORDER BY amount DESC) AS rank
FROM
Sales
)
SELECT
salesperson_id,
amount AS fifth_highest_sale
FROM
RankedSales
WHERE
rank = 5
ORDER BY
salesperson_id ASC;
如有问题请提问。