实例:
查询记录中n_shlc次数最大的那条数据(即根据c_xsbh去重后如何取数)
查询思路:
根据c_xsbh分组排序从,然后取rank=1的记录
根据c_xsbh分组排序后的查询结果:
最终查询sql如下:
select * from (select *,"rank"() over(PARTITION by c_xsbh order by n_shlc DESC) from t_zhba_sjsh) as tt
where rank=1
最终查询结果:
关于rank() over()的使用方法:
创建一个test表,并插入6条数据。
CREATE TABLE test
(
a INT,
b INT,
c CHAR
)
INSERT INTO test VALUES(1,3,'E')
INSERT INTO test VALUES(2,4,'A')
INSERT INTO test VALUES(3,2,'D')
INSERT INTO test VALUES(3,5,'B')
INSERT INTO test VALUES(4,2,'C')
INSERT INTO test VALUES(2,4,'B')
SELECT * from test
a b c
----------- ----------- ----
1