目錄
問題描述
樣例數據表 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',