with cte as(
select t.base_group_id,t.base_task_agent_id,t.user_id,g.base_role_id,r.role_name,g.base_org_id,o.name_,t.ben_time,t.end_time
from base_task_agent t,base_role r,base_organization o,base_group g,base_user u
where u.user_id =756550 and u.user_id = t.user_id and t.base_group_id = g.base_group_id and g.base_role_id = r.role_id and g.base_org_id = o.org_id and t.end_time > to_Date('2012-01-05', 'yyyy-MM-dd')
)
select * from (
select t.*,row_number() over (partition by base_group_id order by base_task_agent_id) rid from cte t
) a where rid=1
简单解释一下 with cte as() 括号内的内容 就是查询的sql 结果 其中包含重复数据,单纯的distinct无法解决 order by也不知怎么搞 于是用with as() 创建一个临时表 cte为临时表的名字
然后
select t.* ,row_number() over(partition by base_group_id order by base_task_agent_id) rid from cte t 这句sql的意思是 查询临时表cte 别名为t row_number() over(partition by 需要检索重复的列 order by 排序的列名) 别名为 rid form cte t
这时候查询就会获得一个rid列 如果base_group_id存在多条相同值就以1开始递增
select * from (↑) a where rid = 1 筛选rid为1 也就是base_group_id只出现一次的数据 这就是去重复了
分享到:
相关推荐
select *,row_number() over(partition by column1 order by column2) as n from tablename 在上面语法中: PARTITION BY子句将结果集划分为分区。 ROW_NUMBER()函数分别应用于每个分区,并重新初始化每个分区的...
介绍了 row_number() over(order by column asc) 函数和 row_number() over(partition by column1 order by column2 asc) 的使用实例和方法
partition by关键字是分析性函数的一部分,partition by用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组,本文给大家介绍SQLServer中Partition By及row_number 函数使用详解,需要的朋友参考下
过滤方法有distinct 获取是整行 重复 但只想过滤2个或2个以上不是所有字段 怎么办? 根据多个字段过滤 比如表:teacher表 id ,name ,sex,idNumber,phone,date; 需求 根据name和idnumber和date过滤重复数据只取...
介绍rank() over()分析函数和 row_number() over 的使用实例及其异同点
SQL Server 2005后之后,引入了row_number()函数,row_number()函数的分组排序功能使这种操作变得非常简单。下面是一个简单示例: 代码如下: –1.创建测试表 create table #score ( name varchar(20), subject ...
row_number() over(partition by A order by B desc)
语法:ROW_NUMBER () OVER ( [ <partition> ] <order> ) 。备注:ORDER BY 子句可确定在特定分区中为行分配唯一 ROW_NUMBER 的顺序。参数:<partition> :将 FROM 子句生成的结果集划入应用了 ROW_NUMBER 函数的分区...
原始数据展示 一:SQL展示 select id,name,age,salary,row_number()over(order by ...select id,name,age,salary,row_number()over(partition by id order by salary desc) rkfrom TEST_ROW_NUMBER_OVER tSQL语句后
语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN) <BR> 例子: 代码如下: select * from ( select *, ROW_NUMBER() OVER(Order by a.CreateTime DESC ) AS RowNumber from table_name as a ) as b ...
语法: ROW_NUMBER() OVER([ <partition>] ) 备注: ORDER BY子句可确定在特定分区中为行分配唯一ROW_NUMBER的顺序。 参数: <partition> 将FROM子句生成的结果集划入应用了ROW_NUMBER函数的分区。 <order> 确定将...
row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)。 与rownum的区别在于:使用rownum进行排序的...
ROW_NUMBER()函数将针对SELECT语句返回的每一行,从1开始编号,赋予其连续的编号。在查询时应用了一个排序标准后,只有通过编号才能够保证其顺序是一致的,当使用ROW_NUMBER函数时,也需要专门一列...partition_by_cl
主要介绍了Oracle查询中OVER (PARTITION BY ..)用法,内容和代码大家参考一下。
oracle去重复 ROW_NUMBER() over(partition by 列名1 order by 列名2)
row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)。 与rownum的区别在于:使用rownum进行排序的...
Rockchip 分区介绍
A20_sys_partition.fex分区表说明v1.3_20140612