需求:删除station_id.ab_data_time.item_code_id.data_cycle.ab_value 字段重复的记录 #查询重复的数据 select b.id,b.station_id,b.ab_data_time,b.item_code_id,b.data_cycle,b.ab_lable,b.ab_value from d_abnormal_data_yyyymms b where (b.station_id,b.ab_data_time,b.item_code_id,…
1.主键的创建 方法一:直接在sql语句中声明字段主键约束 create table table_name (id type[length] constraint pk_name primary key,name tyoe[length],age type[length],class_id); 方法二:alter更改表添加约束 alter table table_name add constraint pk_name primary key (字段); 删除: alter table table…
原始数据: 结果数据: 对比两个图,要是不处理连续性中的重复值,我们直接可以用LEAD函数了事,但处理出来的结果貌似多余. 我的思路是先将原始数据中连续性日期有重复值的处理好,即选择最小的一个,比如2011/01/01和2012/01/01的值是一样,日期又是连续的,所以要去除2012/01/01,保留2011/01/01,让处理出来的截止日期为第4行的日期-1即2012/12/30. 以下是实现代码,有更好更方便的欢迎提出来,共同学习. /*CREATE TABLE TB(PB_DATE DA…
1.需求: 从所有数据中,查出一个时间段中每天的数据量,即:按日做汇总. 2.SQL语句模板: select trunc(date_col) date, sum(num_col) num, count(*) col_num from table_name where to_char(date_col,'yyyymm') = '201305' group by trunc(date_col);3.亲测有效√…
/* 手机号为重复的会员,获取其最大会员id,对应的会员信息 */ SELECT * FROM MEMBER a WHERE a.member_id IN ( SELECT MAX(member_id) FROM MEMBER b WHERE b.mobile IN (SELECT mobile FROM ( SELECT t.mobile,t.mobile_state,t.is_delete FROM MEMBER t WHERE t.is_delete='N'AND t.mobile_sta…
今天同事遇到一个很奇怪的问题,恢复了一个数据库,表明明存在,用PLSQL和sqlplus都试过了,SQL语句select * from 表名,查询数据,却提示表名不存在异常 然而,使用select * from 用户名.表名的方式,却可以查询出数据 网上有说是没有权限,但实际上已经有权限了 时间来不及,先想了个大招,使用create table 表名 as select * from 用户名.表名的方式新建了一个表,居然还创建表成功了,暂时解决燃眉之急,至于实际原因,还未找到~…
1. 因为 oracle有一些 lob字段 在user_extents 里面取出来的结果不是表名, 所以需要与user_lobs 表做关联查询才可以 本来想通过 关联查询来实现, 发现字表查询更简单 如下: /,C.table_name desc 结果为:…
一.去除oracle中重复数据,可以使用rowid列,rowid列是一个伪列,该列在数据库中灭一个表中都有,但是我们查询数据库的时候,默认都没有给我们返回这一列,这一列用来区分数据库中的每一行时间,可以这样认为,子啊数据库中所有表的所有数据中,rowid都不会重复,一般主键只能 保证在当前表中不重复. 语句(以user表为例): from users u2 where u1.username=u2.username and u1.password=u2.password and u1.rowid…
系统在开发测试过程中出现bug,比如并发操作没有处理好,数据库中往往会插入重复数据,这些脏数据经常会导致各种问题.bug可以修改,但是数据往往也要处理,处理SQL如下: 1.根据一个字段查找重复数据 比如,User表中的userName需要保持唯一,查询重复数据的语句如下: SELECT userName from `User` GROUP BY userName HAVING count(*) > ; 如果要删除重复数据,则根据userName分组获取最大或最小id,然后删除其他数据即可,如下…
/* ROWID是行ID,通过它一定可以定位到r任意一行的数据记录 ROWID DNAME DEPTNO LOC ------------------ ---------------------------- ---------- ---------- AAASSUAAEAAAAIbAAA ACCOUNTING 10 NEW YORK AAASSUAAEAAAAIbAAB RESEARCH 20 DALLAS AAASSUAAEAAAAIbAAC SALES 30 CHICAGO AAASSUA…