精华内容
下载资源
问答
  • table如下四列: A B C D a b 1 f a c 3 g ...如何用sql语句实现:查出ABCD四列,但如果前两列相同则取C列最大一条。 比如上述表查询结果就是: A B C D a c 3 g a b 2 h c s 4 j 感谢~
  • 还是先上代码吧 ,可以先看 SQL语句去掉重复记录,获取重复记录 代码如下: ALTER procedure [dbo].[PROC_ITEMMASTER_GETUNIQUE] @PAGEINDEX INT,@uid int,@itemnumber varchar(50) AS begin tran –开始事务 drop ...
  • 去除重复数据的SQL语句

    千次阅读 2010-10-19 16:00:00
    使用 MAX + group by:   SELECT BookId,MAX(CreateDate) AS MaxCreateDate FROM Table1  WHERE StationID=2  GROUP BY BookId  ORDER BY ...过滤重复的话,group by足矣

    使用 MAX + group by:

     

    SELECT BookId,MAX(CreateDate) AS MaxCreateDate FROM Table1
        WHERE StationID=2
        GROUP BY BookId
        ORDER BY MaxCreateDate DESC

     

    MAX在这里主要是用于排序。过滤重复的话,group by足矣

    展开全文
  • 去除重复字段的Sql语句

    千次阅读 2013-01-08 18:49:12
    1.存在两条完全相同纪录 这是最简单一种情况,用关键字distinct就可以去掉  example: select distinct * from table(表名) where (条件)  2.存在部分字段相同纪录(有主键id即唯一键) 如果是这种情况...

    1.存在两条完全相同的纪录 这是最简单的一种情况,用关键字distinct就可以去掉 

    example: select distinct * from table(表名) where (条件) 

    2.存在部分字段相同的纪录(有主键id即唯一键) 如果是这种情况的话用distinct是过滤不了的,这就要用到主键id的唯一性特点及group by分组 

    example: select * from table where id in (select max(id) from table group by [去除重复的字段名列表,....]) 

    3.没有唯一键ID 这种情况我觉得最复杂,目前我只会一种方法,有那位知道其他方法的可以留言,交流一下: 

    example: select identity(int1,1) as id,* into newtable(临时表) from table select * from newtable where id in (select max(id) from newtable group by [去除重复的字段名列表,....]) drop table newtable

    以上转自:http://wenku.baidu.com/view/306653eaf8c75fbfc77db27b.html

    Demo:

    select * into newTableTest from oldTable where id in (select max(id) 
    from oldTable group by x,x)

    展开全文
  • 正好想写一条删除重复语句并保留一条...如下:表字段和数据:SQL语句:DELETEFROM`user`WHEREidNOTIN(SELECT*FROM(SELECTidFROM`user`GROUPBYusername)ASb)理解:先从里面的SQL开始看1、SELECT id FROM `user` GRO...

    正好想写一条删除重复语句并保留一条数据的SQL,网上查了一部分资料写的很详细,但还是在这里写下自己的理解,以遍后续学习 。如下:

    表字段和数据:

    d14640c0c9674d39fde233e061ebb799.png

    SQL语句:

    DELETE FROM`user`WHEREidNOT IN(SELECT*FROM(SELECTidFROM`user`GROUP BYusername)ASb)

    理解:

    先从里面的SQL开始看

    1、SELECT id FROM `user` GROUP BY username根据名字分组查询出每组的ID。

    2、SELECT * FROM(SELECT id FROM `user` GROUP BY username) AS b  这句话中有2个疑问点,

    第一、为什么要套这样一个select?因为 更新数据时使用了查询,而查询的数据又做更新的条件,mysql不支持这种方式

    如果不套上这个select查询,那么将会报1093 -  You can't specify target table 'user' for update in FROM clause错误。

    第二、这句话中一定要取别名,不然会报1248 - Every derived table must have its own alias 错误

    3、结合上面的分析来看一下整个的SQL语句理解,先将分组的ID查出来,然后删除USER表中ID 不在分组ID中的数据,那么就实现效果了。

    delete from 表名 where  ID not in (select * from (select  id from 表名 group by 分组的列名)   别名)

    效果如下:

    949be30d1d49e2bc00f20550e275114b.png

    转自:http://blog.csdn.net/dsiori/article/details/52806709

    展开全文
  • 我想按照name分组,按照date降序排列,希望结果如下: type name guest date 1 aa wew 20131103 1 bb dsf 20131102 select R.* from tab R, (select name, max(date) from tab group by name) S where ...
    SELECT R.* FROM trans_flow  R, (SELECT order_no, MAX(status_time) AS status_time FROM trans_flow GROUP BY order_no) S 
    WHERE R.order_no = S.order_no AND R.status_time = S.status_time 
    ORDER BY R.status_time DESC 
    
    SELECT a.order_no,a.mem_no,c.card_no,c.card_holder,c.bank_name,c.branch_bank_name,a.flag, a.income_type_txt,a.amt,a.create_time FROM account_log a  
    JOIN (SELECT b.*,MAX(id) FROM account b GROUP BY b.mem_no) c 
    ON DATE_ADD(a.create_time, INTERVAL 7 DAY) < NOW() AND a.`mem_no` = c.mem_no  
    ORDER BY a.id DESC 

    解决思路:
    结构如下:
    type name guest       date
    1   aa       sa           20131101
    1   bb      dsf           20131102
    1   aa      wew         20131103
    我想按照name分组,按照date降序排列,希望的结果如下:
    type name guest   date
    1   aa       wew     20131103
    1   bb       dsf       20131102

    select R.* from tab  R, (select name, max(date) from tab group by name) S
    where R.name=S.name and R.date=S.date
    order by R.date desc

    转载于:https://www.cnblogs.com/simpledev/p/3966975.html

    展开全文
  • 返回operation表中time列唯一值 语句1 select time from operation group by time having count(time) > 1 语句2 select distinct time from operation; 转载于:...
  • sql语句如何去除重复的数据

    万次阅读 2018-10-18 16:07:44
    重复数据主要有一下几种情况: 1.存在两条完全相同纪录 这是最简单一种情况,用关键字distinct就可以去掉 example: select distinct * from table(表名) where (条件) 2.存在部分字段相同纪录(有主键id即...
  • 1.存在两条完全相同纪录这是最简单一种情况,用关键字distinct就可以去掉select distinct * from table(表名) where (条件)2.存在部分字段相同纪录(有主键id即唯一键)如果是这种情况话用distinct是过滤不了...
  • /****************************************************************************************************************************...1、Num、Name相同的重复值记录,没有大小关系只保留一条 2、Name相同,ID有大小关
  • SQL语句查询去除重复记录

    万次阅读 2019-01-21 13:52:57
    sql 单表/多表查询去除重复记录 单表distinct 多表group by group by 必须放在 order by 和 limit之前,不然会报错 ************************************************************************************ 1...
  • sql去除重复语句

    2017-11-14 15:00:00
    sql 单表/多表查询去除重复记录 单表distinct 多表group by group by 必须放在 order by 和 limit之前,不然会报错 ************************************************************************************ 1、查找...
  • 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢?1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select peopleId from people ...
  • 工作中非常实用的sql语句 数据: [code="java"] userid sid sexgo 2145796903 sexgo 2145802359 sexgo 2145794277 sexgo 2145802357 sexgo 2145815136 sexgo 2145810994 uuwap 2145874581 ...
  • sql查询语句去除重复列(行)

    万次阅读 多人点赞 2018-04-14 13:26:07
    重复数据主要有一下几种情况:1.存在两条完全相同纪录这是最简单一种情况,用关键字distinct就可以去掉example: select distinct * from table(表名) where (条件)2.存在部分字段相同纪录(有主键id即唯一...
  • create table test_temp as select distinct * from dev_city_map DELETE from dev_city_mapinsert into dev_city_map select * from test_tempTRUNCATE TABLE test_tempDROP TABLE test_temp
  • sql 单表/多表查询去除重复记录 单表distinct 多表group by group by 必须放在 order by 和 limit之前,不然会报错 ********************************************************************************...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 460
精华内容 184
关键字:

去除重复的sql语句