码迷,mamicode.com
首页 > 数据库 > 详细

SQL基本操作——row_number() over()

时间:2017-10-16 19:34:56      阅读:292      评论:0      收藏:0      [点我收藏+]

标签:ssi   ges   区分   ref   div   es2017   频率   logs   com   

row_number() 与over()是在一起使用的,作用就是对表进行排序并记数。

语法:

ROW_NUMBER ( ) 
OVER ( [ PARTITION BY value_expression , ... [ n ] ] order_by_clause )

通过语法可以看出 over里有两个参数, partition by 和 order by ,其中partition by是可以不写的,但是order by是必须有的。partition by是什么意思呢?partition  的中文解释是:n. 划分,分开;[数] 分割;隔墙;隔离物 vt. [数] 分割;分隔;区分。

row_number() 与over()使用频率最高的是分页上传数据,下面是例子

--查询表tl_date
select * from tl_date

技术分享

--显示每个号码的最后通话时间和通话的次数
select tel_num, MAX(date_test) as last_time,count(*) as call_count  from tl_date GROUP BY tel_num

技术分享

--根据上面查询所得表t进行ROW_NUMBER操作,并对表t进行时间排序
select ROW_NUMBER()over(order by t.last_time)as num ,* from (select tel_num, MAX(date_test) as last_time,count(*) as call_count  from tl_date GROUP BY tel_num) as t

技术分享

参考:SQL

 

SQL基本操作——row_number() over()

标签:ssi   ges   区分   ref   div   es2017   频率   logs   com   

原文地址:http://www.cnblogs.com/wuqiuxue/p/7678099.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!