MYSQL仅显示最早的重复项[重复]

Posted

技术标签:

【中文标题】MYSQL仅显示最早的重复项[重复]【英文标题】:MYSQL to display only the earliest of duplicates [duplicate] 【发布时间】:2012-04-29 03:37:13 【问题描述】:
select name, reported_at from nodes
where reported_at < curdate() or reported_at is null
group by name

输出:

name                reported at
ncs-linux-test.edu  2012-03-16 18:36:03
ocdev1.net          2012-04-06 16:32:02
pinc-ctm.net        NULL

通过该声明,我会得到任何报告于/name 的结果表,但该表小于当前日期。

我需要的是只提取具有更多当前信息的重复数据的语句。

例如:

声明只会退出:

ncs-linux-test.edu    2012-03-16

如果有的话

ncs-linux-test.edu 

日期早于 2012-03-16。

【问题讨论】:

本质上是***.com/questions/854128/…,然后您选择每个组中最早的。 如果您有两个都为空值的重复项,您期望得到什么? 【参考方案1】:
select *
from nodes n 
join nodes nlater
  on n.name = nlater.name 
  and n.reportedat < nlater.reportedat

【讨论】:

以上是关于MYSQL仅显示最早的重复项[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从mysql数据库表中仅获取php数组的匹配项[重复]

MYSQL:SELECT 方法 - 但不显示重复项/GROUP 或 DISTINCT?

使用mysql在临时表中显示每个组的重复项

SQL 查询 - 组合两个表,删除重复项并仅保留最新的日期

如何仅保存重复项?

仅保留 DataFrame 中有关某些字段的重复项