精华内容
下载资源
问答
  • 根据两个字段去重SQL语句

    千次阅读 2016-09-26 16:17:37
    delete from aop_app_ipmlinfo a where a.impl_id not in ( select max(t.impl_id) c from aop_app_ipmlinfo t group by t.app_id,t.ability_id )ps: max(t.impl_id) 也能替换为 min(t.impl_id)
    delete from aop_app_ipmlinfo a where a.impl_id not in
    (
      select max(t.impl_id) c from aop_app_ipmlinfo t group by t.app_id,t.ability_id
    )

    ps: max(t.impl_id) 也能替换为 min(t.impl_id)

    展开全文
  • oracle查询根据某个字段去重根据另一个字段决定取哪一条数据 简单举例就是在一张学员考试表(student)中有的学员考试参加了多次取最后一次的数据,如表中数据有: 需要得到的结果是: 下面直接给出该查询的SQL...

    oracle查询根据某个字段去重,根据另一个字段决定取哪一条数据
    简单举例就是在一张学员考试表(student)中有的学员考试参加了多次取最后一次的数据,如表中数据有:
    在这里插入图片描述
    需要得到的结果是:
    在这里插入图片描述
    下面直接给出该查询的SQL:

    select * from student s left join (
    select d.studentId,max(d.snum) snum from student d group bu d.studentId
    ) temp on temp.studentId = s.studentId
    where temp.studentId = s.studentId and temp.snum = s.snum
    
    展开全文
  • 问题:在oracle中使用group by分组,group by子句中必须包含所有的select中的字段和order by子句中的字段。 在不使用group by子句的情况下,进行分组。(根据部分字段分组) over()分析函数 原sql SELECT IM. ...
    问题:在oracle中使用group by分组,group by子句中必须包含所有的select中的字段和order by子句中的字段。

    在不使用group by子句的情况下,进行分组。(根据部分字段分组)

    over()分析函数

    原sql

            SELECT
    			IM. ID mediaGroupId,
    			IC. ID cardId,
    			IC.CARD_CONTENT,
    			IC.CARD_TITLE,
    			IM.UPDATE_TIME mediaUpdateTime,
    			IP.SM_URL cardImgUrl,
    			ICB.BUTTON_NAME
    		
    		FROM
    			INFO_MEDIA IM
    		LEFT JOIN INFO_CARD IC ON IM. ID = IC.MEDIA_ID
    		LEFT JOIN INFO_CARD_BUTTON ICB ON IC. ID = ICB.CARD_ID
    		LEFT JOIN INFO_PIC IP ON IP. ID = IC.MEDIA_PIC_ID
    		WHERE
    			IM. ID = '1'
    		ORDER BY
    			IM.UPDATE_TIME DESC
    

    在这里插入图片描述

    我需要根据cardId字段去重,但是看结果还是有重复的。如果使用group by子句的话,是 无法去重 的。因为button_name字段值是不同的,oracle还是会认为两条记录不重复。

    改进sql

        SELECT
    	    *
        FROM
    	(
    		SELECT
    			IM. ID mediaGroupId,
    			IC. ID cardId,
    			IC.CARD_CONTENT,
    			IC.CARD_TITLE,
    			IM.UPDATE_TIME mediaUpdateTime,
    			IP.SM_URL cardImgUrl,
    			ICB.BUTTON_NAME,
    			ROW_NUMBER() OVER (PARTITION BY IC. ID ORDER BY IM.UPDATE_TIME) AS ROW_NUM
    		FROM
    			INFO_MEDIA IM
    		LEFT JOIN INFO_CARD IC ON IM. ID = IC.MEDIA_ID
    		LEFT JOIN INFO_CARD_BUTTON ICB ON IC. ID = ICB.CARD_ID
    		LEFT JOIN INFO_PIC IP ON IP. ID = IC.MEDIA_PIC_ID
    		WHERE
    			IM. ID = '1'
    		ORDER BY
    			IM.UPDATE_TIME DESC
    	) T3
        WHERE T3.ROW_NUM = 1
    

    在这里插入图片描述

    可以看出来,在使用ROW_NUMBER() OVER() 函数之后,重复记录就去掉了。
    ps: over() 函数中order by 子句必须写

    展开全文
  • Oracle个字段去重

    千次阅读 2019-05-28 10:36:28
    SELECT DISTINCT SUBSTR(d.DEPT_ID, 0, 2) DEPT,d.SECURITY_CHECK --截取前俩位判断去重复 FROM SAF_T_INSPECTION_DEPT d SELECT A .desc_, A .ID_, B.CHECK_TYPE FROM ( SELECT * ......
    SELECT
    DISTINCT SUBSTR(d.DEPT_ID, 0, 2) DEPT,d.SECURITY_CHECK --截取前俩位判断去重复
    FROM
    SAF_T_INSPECTION_DEPT d
    SELECT
    	A .desc_,
    	A .ID_,
    	B.CHECK_TYPE
    FROM
    	(
    		SELECT
    			*
    		FROM
    			BDF2_DEPT D
    		WHERE
    			D .parent_id_ = '00'
    		AND D .level_ = '1'
    	) A
    LEFT JOIN (
    	SELECT
    		DEPT,
    		CHECK_TYPE
    	FROM
    		(
    			SELECT
    				*
    			FROM
    				SECURITY_CHECK c
    			WHERE
    				c.DEL_FLAG = '0'
    			AND c.CHECK_DATE >= TO_DATE ('2019-01-01', 'yyyy-MM-dd')
    			AND c.CHECK_DATE <= TO_DATE ('2019-12-31', 'yyyy-MM-dd')
    		) cc
    	LEFT JOIN (
    		SELECT DISTINCT
    			SUBSTR (DEPT_ID, 0, 2) DEPT,
    			SECURITY_CHECK
    		FROM
    			SAF_T_INSPECTION_DEPT
    	) i ON cc.SECURITY_CHECK_ID = i.SECURITY_CHECK
    ) b ON A .id_ = b.DEPT

     

    展开全文
  • oracle 分组去重两个字段group by

    千次阅读 2020-07-09 10:27:50
    表描述:访问记录表 不同用户访问相同url 同一url被不同用户访问 需求: 查询各个url参与人数 执行sql SELECT temp.url,count() FROM (SELECT url,phone, count() FROM test GROUP BY url , phone) temp ...
  • Oracle根据多列去重

    千次阅读 2019-04-03 11:38:44
    (1)distinct 关键词 distinct用于返回唯一不同的值,可作用于单列和多列 但必须将其放在开头,否则会提示错误 ...与聚合函数联用可以在取多个字段的同时去重其中一个字段 例如要显示的字段为A、...
  • 有一个表有三个字段:code,status,time 现在需求如下:根据code进行去重,拿到每个code...我一开始想到的是根据group分组,但是根据group分组结果想得到status字段就必须根据status,code两个字段进行分组.结果就有问题了
  • select 列1, 列2 from 表名 where rowid in (select max(rowid) from 表名 group by 列2)
  • Oracle如何实现多个字段去重

    千次阅读 2016-05-08 20:18:29
    我们通常使用distinct关键字来去除重复记录,还有没有其他办法呢?通过查找资料,确认group by也可以,利用rowid也可以实现功能。其中,group by是用来分组统计的,能用distinct的地方就...我们可以看到,就前两个字段
  • 1.distinct是针对多字段完全一样的去重 ...2.多个字段针对其中一个字段去重: select * from BB_CREDIT_RESULT where rowid in (select max(rowid) from BB_CREDIT_RESULT group by COURSE_ID) ...
  • Oracle根据个字段进行查重

    千次阅读 2017-07-14 17:16:56
    根据两个字段去重 (a,b) select * from tab t where (t.a, t.b) in (select t1.a, t1.b from tab t1 group by (t1.a, t1.b) having count(*) > 1
  • Oracle三种去重的方法 distinct group by rowid 分组函数:作用于一组数据,并对一组数据返回一值 常见的分组函数有:count 返回找到的记录数min 返回一数字列或计算列的最小值max 返回一数字列或计算列的...
  • 用过函数row_number() over(partition by 过滤字段 order by 排序字段) ,查询出驾驶员的信息且用rownum排序。 我们最终只要取rownum = 1的结果行,则是最终结果; 如下图排序: 最终结果...
  • oracle个字段 去重

    千次阅读 2012-09-25 17:37:05
    select distinct(字段一||字段二||字段三)   用“||”连接就行
  • oracle字段去重查询

    2018-06-29 15:38:00
    oracle字段去重查询 CreationTime--2018年6月29日15点11分 Author:Marydon 1.情景展示  需要对表BASE_MRI_DEVICE的COMPNAME、FIELDSTR、VERSION字段分别进行去重查询,如何使用一sql搞定? 2.需求分析 ...
  • 根据GOODS_NUMBER,USER_ID分组, 然后组内根据CREATED_DATE排序,生成每条记录的排序号rn,取每组中rn>1的记录为重复记录, 最后根据id删除 delete HNZSX_ORDER WHERE id in ( select id from ( select t.*, row_...
  • select t.tid,t.*,z.*,f.* from 表1 t,表2z, (select * from (select rank() over(partition by bd_id order by p_id desc) r,a.* from 表3 a) where r=1) f where t.tid=z.zid and 1=1 and t.tid=f.fid
  • oracle查询多列时对单列去重 最近有一查询,...
  • 完美解决distinct中使用多个字段的方法,完美解决distinct中使用多个字段的方法完美解决distinct中使用多个字段的方法完美解决distinct中使用多个字段的方法完美解决distinct中使用多个字段的方法
  • 一、首先看一下原始数据我们现在要对第二行和第三行的customername、linkman、linkmantel这三个字段去重查询要得到的结果肯定只有三行,distinct肯定是不行的也就是这样的效果二、进行分析要想得到这样的效果首先你...
  • 需求:筛选掉CREATE_TIME字段重复的数据,并显示整行信息 SELECT ID,PTN_ID,CREATE_TIME FROM PR_T_TICKET_NEWSPAPER_DETAILS WHERE PTN_ID IN ('1252786559219220482','1252755733517479939') 可以看到,...
  • 查询表中多余的重复记录(多个字段) select * from student a where (a.saddress, a.sname) in (select saddress, sname from student group by saddress, sname having count(*) > 1) select distinct ...
  • delete from szpj_biz_水文观测数据 a where (a.观测点_id, a.观测时间, a.取样位置) in (select 观测点_id, 观测时间, 取样位置 from szpj_biz_水文观测数据 group by 观测点_id, 观测时间, 取样位置 ...
  • mysql中怎么合并两个字段为一个字段呢?试了好多方法,结果还是不是我想要的
  • T-SQL对多个字段去重并计数

    千次阅读 2018-04-16 16:06:51
    定义和用法可以一同使用 DISTINCT 和 COUNT ...语法SELECT COUNT(DISTINCT column(s)) FROM table例子注意:下面的例子仅适用于 ORACLE 和 Microsoft SQL server,不能用于 Microsoft Access。SELECT COUNT(D...
  • 参考:https://blog.csdn.net/w405722907/article/details/78561995

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,082
精华内容 3,232
关键字:

oracle根据两个字段去重