SQL中令人头疼的limit、offset、rank、dense_rank、row_number一文辨析

这些关键字都涉及到业务中查询最多、最少、第几这样的问题,所以是需要取数的友友们所要必须掌握的技能。

limit和offset:

limit是指显示查询的数据数量,limit 3就是限制三条数据

offset是指查询的偏移量(即查到结果跳过去忽略的数据数量),往往与limit与连用

select * from table_name where x>10 limit 10 offset 3

上面这段语句是指,x大于10的数据结果中先跳过去3个,再显示10个

limit m,n的用法与offset同理,它表示从第m+1行开始(因为索引从0开始)返回,并返回n条数据,也就是说它和 limit n offset m 等价

再说说与窗口函数联系密切的row_number()、rank()和dense_rank()

row_number():人如其名,行标,1,2,3,4,5,6.。。。。

rank():和高考的排名方式一样,1,2,2,4,5,5,7

dense_rank():排名号不能落空,最“紧密”的排序方式,1,2,2,2,3,3,4,5,5

你可能感兴趣的:(sql,数据库)