簡體   English   中英

SQL從多個日期中選擇一條記錄

[英]SQL Select a record from multiple dates

我想建立一個查詢,該查詢返回在多個日期中輸入的條目。

例如:

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

我希望能夠選擇在至少兩個不同的日期輸入的條目。 在這種情況下,我的查詢將僅返回Name1。

SELECT DISTINCT Name FROM Table

是我到目前為止所擁有的。 這是一個簡化的示例,以我為例,我實際上有多個聯接,但是我要弄清楚的是如何檢查具有不同日期值的日期計數。

在having子句中使用組,然后使用計數。

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

如果您不想兩次計算同一日期,則可以使用:

COUNT(DISTINCT Date) > 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方法group by非常合理。 如果性能是一個問題,我只是提供這個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM