`
summernight
  • 浏览: 74607 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

取出最新的某一字段重复的记录的SQL

SQL 
阅读更多

数据库中显示的数据为:

 

先描述一下,id为自动增长列

 

我想取出resid相同的最新插入的那条记录,也就是说我需要显示的结果应该是:

 

可以通过这个SQL来实现:

 

1.SELECT resid,max(id) id FROM  T_PM_MaterialInOutDetail d
WHERE changedate <='2009-04-01'  group by resid

这部分SQL是按resid字段分组,把重复的先去掉,因为id是自动增加列,所以可以按照最大的ID一定是最新的记录来取出最新的ID和resid来。

 

2.select od.id,od.changedate,od.resid,od.num,od.price from T_PM_MaterialInOutDetail od where
exists (
    select * from (
        SELECT resid,max(id) id FROM  T_PM_MaterialInOutDetail d
        WHERE changedate <='2009-04-01'  group by resid
    ) inn where inn.id=od.id
) order by id desc

将两部分SQL按照exists关联起来。。用id来关联,取出想要的全部字段。

  • 大小: 35.2 KB
  • 大小: 20.3 KB
分享到:
评论

相关推荐

    sql_按照某一个字段进行去重后获取全部字段

    根据提供的文件信息,本文将详细解释如何通过 SQL 语句实现按照某一字段去重后获取所有字段的操作。在实际工作中,我们经常会遇到需要对数据表中的记录进行去重的情况,尤其是当某个字段作为唯一标识符时,我们希望...

    SQL中如何实现对字符型字段进行叠加与分割.pdf

    函数的核心部分是通过WHILE循环和字符串拼接实现的,确保每个学生的记录只返回一次,避免重复。最后,通过调用这个函数并结合DISTINCT关键字,可以得到每个学生的所有选修课程列表。 接着,我们讨论如何对字符型...

    SQL语法大全中文版借鉴.pdf

    2. SQL 语言被设计为不允许你按照某种特定的顺序来取出记录,因为这样做会降低 SQL Server 取记录的效率。 SQL 的基本概念 在 SQL 中,一个表由行和列组成。行也称为记录,每一行包含一组数据。列也称为字段或域。...

    SQL常用经典语句

    删除表中的重复记录。 **实现方式:** ```sql DELETE FROM 表名 WHERE id NOT IN (SELECT MAX(id) FROM 表名 GROUP BY col1, col2, ...); ``` **解释:** 这里使用子查询来找出每组中`id`最大的记录,然后删除除...

    经典SQL语句大全

    19、说明:删除重复记录 1),delete from tablename where id not in (select max(id) from tablename group by col1,col2,...) 2),select distinct * into temp from tablename delete from tablename insert into...

    SQL初/中级教程(pdf)

    - **DISTINCT关键字**:去除重复记录,只显示唯一的数据。 **1.3 创建新表** - **1.3.1 用SQL创建新表** - **CREATE TABLE语句**:定义表的结构。 - **1.3.2 字段类型** - **字符型数据**:VARCHAR、CHAR等。 -...

    SQL语句大全

    删除重复记录** - **语法**: ```sql ;WITH CTE AS ( SELECT *, ROW_NUMBER() OVER (PARTITION BY column1, column2, ... ORDER BY (SELECT NULL)) AS rn FROM 表名 ) DELETE FROM CTE WHERE rn &gt; 1; ``` *...

    SQL性能优化

     SQL在运行时先取出数个查询的结果,再用排序空间进行排序删除重复的记录,最后返回结果集,如果表数据量大的话可能会导致用磁盘进行排序。  实际大部分应用中是不会产生重复的记录,推荐采用UNION ALL操作符...

    数据库操作语句大全(sql)

    19、说明:删除重复记录 1),delete from tablename where id not in (select max(id) from tablename group by col1,col2,...) 2),select distinct * into temp from tablename delete from tablename insert into...

    sql语句大全 包括常有语句 新手必备

    这条 SQL 语句用于删除表 `tablename` 中的重复记录,保留每个组中 `id` 最大的记录。这种操作通常用于数据清理,例如: - 当表中有重复数据时,可以通过这种方式保留一条记录,删除其他重复项。 - 在导入大量数据...

    区域横向重复-asp

    2. **执行查询**:编写SQL语句获取所需数据,比如获取某表的所有记录。例如: ```vbscript Dim rs Set rs = Server.CreateObject("ADODB.Recordset") sql = "SELECT * FROM 表名" rs.Open sql, conn ``` 3. **处理...

    数据透视表SQL语句入门

    上面那一句SQL语句的意思就是:从表材料进货明细表中取出定额名称及规格的值 例2、查询材料进货明细表的详细记录 SELECT * FROM [材料进货明细表$] 等价于: SELECT 序号, 定额名称,规格,日期,单位,数量 FROM ...

    超实用sql语句

    19、说明:删除重复记录 1),delete from tablename where id not in (select max(id) from tablename group by col1,col2,...) 2),select distinct * into temp from tablename delete from tablename insert into...

    SQL最全基础教程(有本事别看啊!).docx

    SQL 使我们能够访问数据库、执行查询、取出数据、插入新的记录、更新数据库中数据、删除记录、创建数据库、创建表、创建存储过程和视图,以及设置表、存储过程和视图的权限。 二、RDBMS RDBMS(Relational ...

    SQL语句备忘手册

    - **删除重复记录**:使用`DISTINCT`或`GROUP BY`结合`HAVING`删除重复行。 - **列出所有表名和列名**:`sysobjects`和`syscolumns`等系统表用于获取元数据。 - **初始化表、选择指定范围记录**、**随机选择记录*...

    MySQL常用sql语句(本人整理而出)

    这个命令的功能是查询指定表中字段名为值1和值2之间的所有记录。例如,select * from students where stu_score between 0 and 60命令将显示成绩在0分到60分之间的所有学生的信息。 关键字:between…and… 7. ...

    数据库SQL经典语句(包含几乎所有的经典操作语言).doc

    - **定义**: 删除表中的重复记录。 - **实现方式**: - 使用子查询和聚合函数。 ```sql DELETE FROM tablename WHERE id NOT IN (SELECT main_id FROM (SELECT MIN(id) AS main_id FROM tablename GROUP BY a) AS ...

    SQL数据库语句大全.docx

    **删除重复记录** - **示例**: `DELETE FROM 表名称 WHERE id NOT IN (SELECT MIN(id) FROM 表名称 GROUP BY 列名称1, 列名称2, ...);` - **说明**: 删除表中重复的数据行。 **列出数据库里所有的表名** - **示例**...

    Spark SQL编程初级实践-答案-实验报告-纠正版

    - **去重**:使用`.distinct()`方法去除DataFrame中的重复记录。 - **去除指定字段**:使用`.drop()`方法删除DataFrame中的某一列。 - **筛选条件**:使用`.filter()`方法根据条件筛选数据。 - **分组统计**:...

Global site tag (gtag.js) - Google Analytics