在有些情况下我们需要对数据分组并且获取每个分组中的第一条记录,这时候我们可以采用 Rank() 函数来获取。
我们创建一个表作为测试表
CREATE TABLE table1(a VARCHAR(10),b VARCHAR(10),c VARCHAR(10))
--插入数据
INSERT INTO table1 VALUES('2004','12','storea');
INSERT INTO table1 VALUES('2005','07','storea');
INSERT INTO table1 VALUES('2004','11','storeb');
INSERT INTO table1 VALUES('2005','06','storeb');
--调用Rank函数
SELECT * FROM (SELECT t.*, RANK()
OVER (PARTITION BY t.a ORDER BY t.b DESC) AS drank
FROM table1 t) a WHERE drank=1