最简单的一种方式,在SQL中只实现一项相同的内容

 2024-03-12 05:04:44  阅读 0

最简单的一种方式,在SQL中只实现一项相同的内容

更新时间:2016年6月12日 09:46:56 作者:

本文主要介绍SQL中遇到多个相同内容时只取一个的最简单的实现方法。 比较实用,希望可以给大家参考。

在SQL中,我们经常会遇到以下情况。 一张表中有两条记录基本相同,但其中一个或几个字段存在细微差别。

这时,我们可能需要踢掉这些不同的数据,即只保留两条或多条记录中的一条。

如下:表

sql 相同字段只取一条_sql 相同字段只取一条_sql 相同字段只取一条

对于时间字段相同时合计和名称不同的情况,每当遇到相同的时间字段时,只取其中一项数据。 有两种最简单的实现方法。

1. time,max(total) as Total,name from group by time;//获取记录中total的最大值

sql 相同字段只取一条_sql 相同字段只取一条_sql 相同字段只取一条

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

sql 相同字段只取一条_sql 相同字段只取一条_sql 相同字段只取一条

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

2. * from as a where not ( 1 from where a.time = time and a.total

sql 相同字段只取一条_sql 相同字段只取一条_sql 相同字段只取一条

该方案消除了方案一中名称字段不准确的问题,并且取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。

标签: 字段 相同 差别

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码