`
wangyihust
  • 浏览: 436236 次
文章分类
社区版块
存档分类
最新评论

如何删除仅仅第一列相同的记录?

 
阅读更多

问题描述:关系数据库中手工输入表InputData中有如下记录,

TagName TimeStamp Value
MM0008 2007-08-12 0:00:00 1000
MM0008 2007-08-13 0:00:00 1001
MM0008 2007-08-14 0:00:00 1002
MM0008 2007-08-15 0:00:00 1003
MM0008 2007-08-16 0:00:00 1004
MM0008 2007-08-17 0:00:00 1005
MM0008 2007-09-07 9:50:22 4444
MM0008 2007-09-07 15:10:56 100
MM0008 2007-09-07 15:11:56 200
MM0008 2007-09-11 15:53:13 500
MM0008 2007-09-11 15:54:51 500
MM0008 2007-09-11 15:55:03 123
MM0008 2007-09-11 15:58:08 500
MM0008 2007-09-11 16:01:58 0
MM0009 2007-09-11 15:58:08 501
MM0009 2007-09-11 16:01:58 0
MM0010 2007-09-11 15:58:08 502
MM0010 2007-09-11 16:01:58 0
MM0011 2007-09-11 15:58:08 503
MM0011 2007-09-11 16:01:58 0
MM0018 2007-09-11 15:58:08 504
MM0018 2007-09-11 16:01:58 0
MM0019 2007-09-11 15:58:08 505
MM0019 2007-09-11 16:01:58 0
MM0020 2007-09-11 15:58:08 506
MM0020 2007-09-11 16:01:58 0
MM0021 2007-09-11 15:58:08 507
MM0021 2007-09-11 16:01:58 0
MM0022 2007-09-11 15:58:08 508
MM0022 2007-09-11 16:01:58 0
MM0023 2007-09-11 15:58:08 509
MM0023 2007-09-11 16:01:58 0
MM0024 2007-09-11 15:58:08 510
MM0024 2007-09-11 16:01:58 0
MM0025 2007-09-11 15:58:08 511
MM0025 2007-09-11 16:01:58 0

如何获得每个TagName离当前时间最近的一条记录,把它的值及其时间插入到实时数据库中?最后得到的记录集如下所示:

TagName TimeStamp Value

MM0008 2007-09-11 16:01:58 0
MM0009 2007-09-11 16:01:58 0
MM0010 2007-09-11 16:01:58 0
MM0011 2007-09-11 16:01:58 0
MM0018 2007-09-11 16:01:58 0
MM0019 2007-09-11 16:01:58 0
MM0020 2007-09-11 16:01:58 0
MM0021 2007-09-11 16:01:58 0
MM0022 2007-09-11 16:01:58 0
MM0023 2007-09-11 16:01:58 0
MM0024 2007-09-11 16:01:58 0
MM0025 2007-09-11 16:01:58 0

解决方案:

1. 使用distinct:可以删除完全相同的记录,但是我现在只需要删除TagName列相同的记录,不是很好实现。

2. 使用group by

SELECT     Tagname, TimeStamp, Value
FROM         InputData
WHERE     (TimeStamp IN
                          (SELECT     MAX(TimeStamp) AS TimeStamp
                            FROM          InputData 
                            GROUP BY Tagname)) 

分享到:
评论

相关推荐

    如何删除QQ空间最近访客记录?.docx

    第一种方法通过“好友”模块快速找到并删除访客记录;第二种方法则通过“个人中心”内的“谁看过我”功能来实现同样的目的。这两种方法都非常简单易行,只需按照步骤操作即可。此外,建议定期检查并清理不必要的访客...

    table 第一行第一列 固定

    标题 "table 第一行第一列 固定" 描述的是一个网页设计中的常见需求,即在表格(table)中实现第一行或第一列在用户滚动页面时保持固定显示。这种效果通常用于数据量大且需要横向或纵向滚动查看的表格,以便用户始终...

    需筛选出A列的重复记录 且 B列互为相反数

    在Excel中,如果某一列(如A列)中的某些行具有完全相同的值,那么这些行就被认为是重复的。例如,如果A列有"苹果"、"香蕉"、"苹果"、"橙子"这样的数据,那么第二行和第四行就是重复记录。 接着,我们来看“互为...

    找出同列中的相同数据

    假设你有一列数据在C列中,并想找出哪些行的数据与C2单元格中的数据相同。你可以在D列的第一行(即D2)输入上述公式,并向下拖动填充柄,直到覆盖整个数据范围。这样,D列中的每个单元格都将显示其对应C列单元格的...

    仿招商银行基金类目android表头和第一列固定

    4. **固定第一列**:对于第一列,可以创建一个与ListView宽度相同、高度可变的LinearLayout作为父布局。在内部,你可以创建两个并排的LinearLayout,一个是固定的第一列,另一个是可滚动的内容列。设置LinearLayout...

    将oracle数据库某张表的某两列相加并插入新的一列记录

    在公司实际的项目开发中,我遇到这样一个需求,需要将oracle数据库某张表的某两列相加形成新的一列。

    Qt编程-QTableView冻结行或冻结列或冻结局部单元格

    在处理大型数据集时,为了提高用户体验,我们有时需要冻结表视图的某些部分,如固定首行、首列或者特定的单元格,以便用户在滚动时能始终保持这些关键信息可见。本篇文章将详细讲解如何在QTableView中实现行、列或...

    3M胶测试记录表格.docx

    该表格的第一列是试验项目序号,用于标识每个试验项目的唯一编号,以便追踪和记录试验结果。 成型日期 第二列是成型日期,记录了试验项目的完成日期,以便追踪试验项目的进行情况。 试验日期 第三列是试验日期,...

    MFCLISTCONTRL控件完美示例

    2. **图标支持**:"第一列 图标"的标签表明DEMO展示了如何在第一列添加图标。这可以通过LVIF_IMAGE标志在LVCOLUMN结构中指定,同时需要维护一个ImageList来存储图标资源。 3. **复选框支持**:"checkbox风格"意味着...

    LayUiTable表单相同参数的单元格合并

    - **数据预处理**:在获取到原始数据后,我们需要对数据进行处理,找出具有相同参数的行,并记录其起始行和结束行以及需要合并的列索引。 - **自定义模板**:利用LayUI的模板语法(例如`<#...#>`),我们可以编写...

    使用Shell 脚本实现每隔100行插入一条记录且记录第一列包含行号其他列不变

    1、例子:每隔100行插入一条记录,并且此条记录的第一列包含行号,其他列与第一行相同 #!/bin/sh var=00001 # 变量 cat a.txt|awk 'NR==1'|while read line # 获取文件第一行 do #echo $line result=`echo $line|...

    Asp.net中获取DataTable选择第一行某一列值

    例如,从数据库查询结果返回一个DataTable后,我们可能需要获取其中某一列在第一行的值。本知识点主要解释如何在***中利用DataTable对象以及LINQ(语言集成查询)来实现这一目标,并提供一些代码示例。 首先,我们...

    【JavaScript源代码】Vue Elenent实现表格相同数据列合并.docx

    完成上述步骤后,运行代码,表格就会根据指定的列(这里是第一列的 `ENTERNAME` 字段)自动合并相同数据的单元格。你可以根据实际需求调整代码,以处理其他列或更多的合并逻辑。 在实际项目中,可能会有更多复杂的...

    Java导出excel时合并同一列中相同内容的行思路详解

    //用来记录是否是第一次循环 //根据搜索条件导出 List<FcxtCampus> campusList = new ArrayList(); if(null != campuscode && !"".equals(campuscode)){ campusList = campusdao.findCampusByCode(campuscode); ...

    DBGridEh首列显示行号的Demo

    3. **调整列索引**: 为了让行号列始终显示在第一列,我们需要确保其Index属性为0。这通常在数据集初始化后执行。 4. **处理滚动和排序**: 当用户滚动DBGridEh或数据集被排序时,行号列也需要相应更新。可以通过监听...

    最高效的删除重复记录方法

    这样可以保留每个 `EMP_NO` 对应的第一条记录,而删除其他重复记录。 ##### 方法二:基于唯一标识符的删除 当存在多个字段组合能唯一标识一条记录时,可以使用子查询结合 GROUP BY 和 HAVING 子句来找到重复记录,...

    论文指导记录表第一次.zip

    标题"论文指导记录表第一次.zip"表明这是一个包含论文指导过程记录的压缩文件,可能是导师与学生交流、修改论文的详细记录,主要用于跟踪和回顾论文的撰写进度和修改建议。"第一次"可能指的是这是系列指导记录中的第...

    SQL合并一列

    ### SQL合并一列知识点详解 在SQL查询语言中,“SQL合并一列”通常指的是通过某种方式将多个行中的数据合并到同一列中的技术。这种需求常见于报表制作、数据分析等领域,尤其是在处理会计科目等需要展示多层级信息...

    spark dataframe 将一列展开,把该列所有值都变成新列的方法

    这里需要注意的是,在实际应用中,可能会出现某些地理位置在某些小时内没有记录的情况,此时使用 `na.fill(0)` 可以确保 DataFrame 中的每一列都有完整的数据,避免了后续处理中可能出现的空值问题。 #### 总结 ...

    查找删除重复记录

    通过这种方式,可以确保保留每组中的第一条记录,并有效地删除重复记录。 总之,通过SQL查询可以高效地识别、查找并删除数据库中的重复记录,从而保持数据的完整性和准确性。根据具体情况选择合适的方法,可以更好...

Global site tag (gtag.js) - Google Analytics