2017-08-23 14 views
-4

MySQLの最新のレコードから最も古い日付を見つける方法を教えてください。最新のレコードからの最も古い日付

は、私は(2017年7月18日)製品が活性化された最新の時間を見つけることができるようにしたい

以下
+--------+-----------+------------+ 
| ID  | PRODUCTID | DATEACTIVE | 
+--------+-----------+------------+ 
| 546502 | 23405  | 2017-07-20 | 
| 545075 | 23405  | 2017-07-19 | 
| 543651 | 23405  | 2017-07-18 | 
| 456783 | 23405  | 2017-01-04 | 
| 456782 | 23405  | 2017-01-03 | 
| 456781 | 23405  | 2017-01-02 | 
| 456780 | 23405  | 2017-01-01 | 
| 65453 | 23405  | 2016-07-19 | 
| 65452 | 23405  | 2016-07-18 | 
+--------+-----------+------------+ 

を考えてみましょう

+1

ことがありますか?最も古いか、最近の?あなたは反対を求めました。 –

+1

あなたは**自分でコードを書くことができます**。 [もっと研究をした後](https://meta.stackoverflow.com/q/261592/1011527) 問題がある場合は**投稿した内容を投稿してください** working **と は、[最小、完全、および検証可能な例]を提供します(http://stackoverflow.com/help/mcve)。 [よくある質問のしくみ](http://stackoverflow.com/help/how-to-ask)をお読みください。 [ツアーに参加する](http://stackoverflow.com/tour)と[this](https://meta.stackoverflow.com/q/347937/1011527)を必ずお読みください。 –

+0

最近の並行日の最も古い日付。 –

答えて

0
SELECT MAX(DATEACTIVE) as most_recent_time 
FROM `YOUR_TABLE_NAME` 
WHERE PRODUCTID = 'YOUR_ID' 
0

次の方法でデータをソートするためにORDER BYを使用することができます日付、以下のコードを参照してください:

SELECT * 
FROM `YOUR_TABLE_NAME` 
WHERE `PRODUCTID` = 'YOUR_ID' 
ORDER BY `DATEACTIVE` DESC; 
1

Pls次の時間fスローンがコメントで言ったことをollow。

私はあなたの質問を理解すれば、このようなものを使うことができます。 クエリは、内部の "グループ"に連続する日付をグループ化し、各 "グループ"に連続する番号を与えます。
「最初の」グループ(最近のグループ)のみを選択し、行を昇順で日付順に番号付けします。 最後に、最初の「行番号」の行が選択されます。

SELECT * 
FROM (
     SELECT @rn:[email protected]+1 AS RN, 
      A.* 
     FROM (
      SELECT @gr:= IF(@prev_date=DATE_ADD(dateactive, INTERVAL +1 DAY), @gr, @gr+1) AS GR 
      ,TN.* 
      ,@prev_date:=dateactive AS PD 
      FROM TN 
      CROSS JOIN (SELECT @gr:=0, @prev_date:=(SELECT MAX(dateactive) FROM TN)) R 
      ORDER BY DATEACTIVE DESC 
      ) A 
      CROSS JOIN (SELECT @rn:=0) R2  
     WHERE GR=1  
     ORDER BY DATEACTIVE 
    )B 
WHERE RN=1; 

出力:

RN GR id productid dateactive PD 
1 1 543651 23405 18.07.2017 00:00:00 2017-07-18 
関連する問題