t-sql row_number()over(partition by 使用说明
2015-03-31 21:34
363 查看
select CompanyID from (select id,CompanyID,datacid,row_number()over(partition by CompanyID,datacid order by id) m from t_Assessment_detail where Ischeck=1 and Datacid='20150319193127793' ) t where t.m =2
其中的关键语句:
row_number()over(partition by CompanyID,datacid order by id)
解释:按照CompanyID和datacid进行分组,然后再根据id进行排序,最终为每一行数据形成新的编号,
看第2、3、4三行数据,m列的1、2、3就是分组后形成的新的编号,因为companyid和datacid同时相同的数据有3条,所以,m最多是3,
此时,如果想取得有重复数据的companyid的话,直接加上条件m=2就行了,有的人用m<>1,也行,但是还是需要distinct的。
相关文章推荐
- Oracle数据库 row_number() over() 函数使用说明
- Oracle数据库 row_number() over() 函数使用说明
- 数据库“行专列”操作---使用row_number()over(partition by 分组字段 [order by 排序字段])
- hive:数据库“行专列”操作---使用collect_set/collect_list/collect_all & row_number()over(partition by 分组字段 [order by 排序字段])
- 使用Oracle的row_number() over函数过滤重复数据,取最新的记录
- row_number()over函数的使用(转)
- row_number() over (partition by....order by...)用法 一
- row_number() over (partition by....order by...)用法
- oracle函数row_number() over ( )的简单使用
- row_number()over函数的使用(转)
- ROW_NUMBER() OVER()函数用法;(分组,排序),partition by
- SQL 分组后返回序号(ROW_NUMBER () OVER(PARTITION BY order_no ORDER BY START_Time ASC 的使用方法)
- row_number() over(PARTITION BY
- SQL ROW_NUMBER() OVER函数的基本用法用法
- oracle分析函数row_number() over()使用(2)
- SQL语句中的rank () over , row_number() over ,rank_dense (), PARTITION BY
- ORACLE分析函数over(partition by...)中使用case when达到多重分组的效果
- SQL Server2005使用ROW_NUMBER() OVER实现按分组查询Count()数量排序并分页
- oracle分析函数row_number() over()使用
- Oracle Rownum和row_number() over()的使用