最简单的一种方式,在SQL中只实现一项相同的内容
更新时间:2016年6月12日 09:46:56 作者:
本文主要介绍SQL中遇到多个相同内容时只取一个的最简单的实现方法。 比较实用,希望可以给大家参考。
在SQL中,我们经常会遇到以下情况。 一张表中有两条记录基本相同,但其中一个或几个字段存在细微差别。
这时,我们可能需要踢掉这些不同的数据,即只保留两条或多条记录中的一条。
如下:表
对于时间字段相同时合计和名称不同的情况,每当遇到相同的时间字段时,只取其中一项数据。 有两种最简单的实现方法。
1. time,max(total) as Total,name from group by time;//获取记录中total的最大值
或者time,min(total) as Total,name from group by time;//获取记录中total的最小值
以上两种方案都有一个缺点,就是无法区分name字段的内容,所以一般用于只有两个字段或者其他字段内容完全一致的情况。
2. * from as a where not ( 1 from where a.time = time and a.total
该方案消除了方案一中名称字段不准确的问题,并且取total的最大值。
在上面的示例中,只有一个字段不同。 如果两个字段相同怎么办? 如何查看第三个字段的最大值?
其实很简单,在原来的基础上做一些修改即可:
原始SQL语句:
* from as a where not ( 1 from where a.time = time and a.total
可以修改为:
* from as a where not ( 1 from where a.time = 时间 and (a.total
这是另一个 Int 类型的字段
以上就是SQL中遇到多个相同内容时只取一个最简单的实现方法的全部内容。 希望能给大家一个参考,也希望大家支持 Home。