SQL从多个日期中选择一条记录

时间:2014-07-29 17:46:45

标签: sql

我想构建一个返回已在多个日期输入的条目的查询。

例如:

 Name  |  Country  |  Date
 Name1 | Country1  | Date1
 Name2 | Country2  | Date2
 Name1 | Country2  | Date3

我希望能够选择至少在两个不同日期输入的条目。在这种情况下,我的查询将只返回Name1。

SELECT DISTINCT Name FROM Table

到目前为止,我已经完成了所有工作。这是一个简化的例子,在我的情况下,我实际上有多个连接,但我想知道如何做的是检查具有不同日期值的日期计数。

2 个答案:

答案 0 :(得分:3)

然后使用一个组来计算having子句中的计数。

select Name
from Table
group by Name
having count(*) > 1

如果您不想两次计算相同日期,则可以使用:

COUNT(DISTINCT Date) > 1

答案 1 :(得分:1)

在许多SQL语言中,执行此查询的最快方法是:

select t.*
from table t
where exists (select 1 from table t2 where t2.name = t.name and t2.date <> t.date);

为获得最佳效果,您需要table(name, date)中的索引。

注意group by方法非常合理。如果性能问题,我只是提供这个。