2016-07-21 13 views
1

私は、日付に基づいてテーブルの最新のレコードだけを選択したいと考えていますが、各URLのDistinctリスト。テーブル構造は次のようなものです。SQL Distinctカラムと最新の日付を選択してください

ID  URL   DateVisited 
1   google.com 01-01-2016 
2   yahoo.com 01-02-2016 
3   google.com 12-30-2015 
4   google.com 02-01-2016 

だから私の結果セットのために、私は

google.com  02-01-2016 
yahoo.com  01-02-2016 

をしたいと思う私ではなく、私の実際のクエリにカップルより多くの条件文を持っていますが、単にヒットログの単一の最新のレコードを取得したいでしょう明確なURLと日付のリスト、単に別のURLと最新の日付。

+0

可能重複/ 121387/fetch-the-the-max-for-a-column) –

答えて

6

これはそうように、実際には単純な集合を用いて行うことが非常に簡単である:[列の最大値を持つ行を取得する(http://stackoverflow.com/questionsの

select URL, max(DateVisited) 
from <table> 
group by URL 
+0

素晴らしい仕事をした私のグループの中に不要な結果を与えるdtVisitedを含めていましたが、私がそれを作っているよりも簡単だったことは分かっていました! –

-1

は、これは通常row_number()を使用して行われます。これは、あなたが最新のレコードに関連付けられたすべての列を取得することができます

select t.* 
from (select t.*, 
      row_number() over (partition by url order by datevisited desc) as seqnum 
     from t 
    ) t 
where seqnum = 1; 

+1

彼はidを必要としないので、バニラの最大/グループで十分だろうと私は思う。 –

関連する問題