SQL中遇到多条相同内容只取一条的最简单实现方法

 更新时间:2016年06月12日 09:46:56   作者:meaijojo  
本文主要介绍SQL中遇到多条相同内容只取一条的最简单实现方法,比较实用,希望能给大家做一个参考。

SQL中经常遇到如下情况,在一张表中有两条记录基本完全一样,某个或某几个字段有些许差别,

这时候可能需要我们踢出这些有差别的数据,即两条或多条记录中只保留一项。

如下:表timeand

//img.jbzj.com/file_images/article/201606/201606120940063.jpg

针对time字段相同时有不同total和name的情形,每当遇到相同的则只取其中一条数据,最简单的实现方法有两种

1、select time,max(total) as total,name from timeand group by time;//取记录中total最大的值

//img.jbzj.com/file_images/article/201606/201606120940064.jpg

或 select time,min(total) as total,name from timeand group by time;//取记录中total最小的值

//img.jbzj.com/file_images/article/201606/201606120940065.jpg

上述两种方案都有个缺点,就是无法区分name字段的内容,所以一般用于只有两条字段或其他字段内容完全一致的情况

2、select * from timeand as a where not exists(select 1 from timeand where a.time = time and a.total<total);

//img.jbzj.com/file_images/article/201606/201606120940066.jpg

此中方案排除了方案1中name字段不准确的问题,取的是total最大的值

上面的例子中是只有一个字段不相同,假如有两个字段出现相同呢?要求查处第三个字段的最大值该如何做呢?

其实很简单,在原先的基础上稍微做下修改即可:

原先的SQL语句:

select * from timeand as a where not exists(select 1 from timeand where a.time = time and a.total<total);

可修改为:

select * from timeand as a where not exists(select 1 from timeand where a.time = time and (a.total<total or (a.total=total and a.outtotal<outtotal)));

其中outtotal是另外一个字段,为Int类型

以上就是SQL中遇到多条相同内容只取一条的最简单实现方法的全部内容,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • sql server把退款总金额拆分到尽量少的多个订单中详解

    sql server把退款总金额拆分到尽量少的多个订单中详解

    这篇文章主要给大家介绍了关于sql server把退款总金额拆分到尽量少的多个订单中的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 通过sql存储过程发送邮件的方法

    通过sql存储过程发送邮件的方法

    如何配置SQL Server利用Internet 邮件服务器发送邮件? 请看下面:
    2013-03-03
  • SQLSERVER的版本信息和SP补丁信息查看方法

    SQLSERVER的版本信息和SP补丁信息查看方法

    打开SQLSERVER配置管理器,然后用鼠标左键双击打开属性对话框,然后选择高级选项卡就可以看到SQL的版本信息,有需要的朋友可以了解下啊,或许对你有所帮助
    2013-01-01
  • SQL Server的彻底卸载方法步骤

    SQL Server的彻底卸载方法步骤

    可能大家已经有深刻体会,SQL Server的卸载十分繁琐,本文主要介绍了SQL Server的彻底卸载方法步骤,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05
  • SQL Server连接失败错误及解决

    SQL Server连接失败错误及解决

    SQL Server连接失败错误及解决...
    2007-01-01
  • sql coalesce函数的具体使用

    sql coalesce函数的具体使用

    这篇文章主要介绍了sql coalesce函数的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • SQL Server数据库命令整理大全

    SQL Server数据库命令整理大全

    刚开始学数据库,可能一下子记不住那么多的命令,或者命令太多,容易混淆,不知道如何选择最合适的那一条,所以我在这里整理好了一份经常会用到的一些,这篇文章主要给大家介绍了关于SQL Server数据库命令整理大全的相关资料,需要的朋友可以参考下
    2024-05-05
  • SQL server数据库log日志过大占用内存大的解决办法

    SQL server数据库log日志过大占用内存大的解决办法

    SQL Server日志文件过大,随着时间的推移会占用很大的存储空间,下面这篇文章主要给大家介绍了关于SQL server数据库log日志过大占用内存大的解决办法,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2024-05-05
  • sqlserver、mysql获取连接字符串步骤

    sqlserver、mysql获取连接字符串步骤

    这篇文章主要介绍了sqlserver、mysql获取连接字符串步骤,需要的朋友可以参考下
    2014-07-07
  • SQL Server数据表模糊查询(like用法)以及查询函数详解

    SQL Server数据表模糊查询(like用法)以及查询函数详解

    使用SQL Server查询时经常会使用模糊查询,需要查询包含的指定字符串内容,这篇文章主要给大家介绍了关于SQL Server数据表模糊查询(like用法)以及查询函数的相关资料,需要的朋友可以参考下
    2024-05-05

最新评论