目录
问题描述
样例数据表 sales
解决方案
第三步:使用条件聚合将多行合并为单行输出"
步骤1:计算排名的中间结果
中间结果输出:
步骤2:最终查询(处理并列情况)
最终输出结果:
关键点解释:
RANK() OVER (PARTITION BY group_id ORDER BY amount DESC):计算每组销售额最高排名(1表示最高)
特殊情况处理:
常见追问及回答
问题描述
取窗口内排名第一和排名倒数第一的作为两个字段输出
样例数据表 sales
CREATE TABLE sales (group_id STRING,salesperson STRING,amount DECIMAL(10,2)
);
INSERT INTO sales VALUES
('A', 'John', 1000),
('A', 'Mike', 1500),
('A', 'Sally', 1500), -- 并列第一
('A', 'Bob', 700),
('B', 'Tom', 2000),
('B', 'Jerry', 1800),
('B',