2017-09-14 11 views
1

こんにちは私は、mysqlのクエリでMySQLのタイムスタンプの比較の問題

mysql> SELECT * from share5; 
+----+-------+--------------+--------+-------+---------------------+ 
| Id | Price | State  | Symbol | Trade | created_date  | 
+----+-------+--------------+--------+-------+---------------------+ 
| 1 | 120 | maharashtra | mh  | buy | 2017-09-12 12:18:11 | 
| 1 | 121 | maharashtra | mh  | buy | 2017-09-12 12:18:36 | 
| 2 | 122 | karnataka | ka  | sell | 2017-09-12 12:19:26 | 
| 2 | 123 | karnataka | ka  | sell | 2017-09-12 12:20:00 | 
| 3 | 124 | tamil nadu | tn  | buy | 2017-09-12 12:20:30 | 
| 3 | 125 | tamil nadu | tn  | buy | 2017-09-12 12:20:43 | 
| 4 | 127 | andrapradesh | ap  | buy | 2017-09-12 12:26:26 | 
| 4 | 126 | andrapradesh | ap  | buy | 2017-09-12 12:26:39 | 
| 4 | 126 | andrapradesh | ap  | buy | 2017-09-12 16:57:19 | 
+----+-------+--------------+--------+-------+---------------------+ 

を疑いを持っていた私は、私は、タイムスタンプを比較することによって、最新のものをフィルタリングしたいの上などのために2つのidを比較することによって、によってインデックス内の最新の値を選択します。 私は以下のものを試しましたが、それは最新ではない最初の付加価値だけを与えています。 2つのIDを比較し、最新のIDを除外することはできますか?

mysql> SELECT price,id,state,symbol,trade,created_date from share5 group by id ; 
+-------+----+--------------+--------+-------+---------------------+ 
| price | id | state  | symbol | trade | created_date  | 
+-------+----+--------------+--------+-------+---------------------+ 
| 120 | 1 | maharashtra | mh  | buy | 2017-09-12 12:18:11 | 
| 122 | 2 | karnataka | ka  | sell | 2017-09-12 12:19:26 | 
| 124 | 3 | tamil nadu | tn  | buy | 2017-09-12 12:20:30 | 
| 127 | 4 | andrapradesh | ap  | buy | 2017-09-12 12:26:26 | 
+-------+----+--------------+--------+-------+---------------------+ 
+0

試着価格を選択してくださいID、状態、シンボル、取引、created_date from share5 id by DESC; –

答えて

0

各グループからの最新の行を取得するには、次のクエリ

select t.* 
from share5 t 
join (
    select Id,max(created_date) created_date 
    from share5 
    group by Id 
) t1 using(Id,created_date) 

DEMO

+1

コードkhalidのために働いてくれてありがとう –

0

を使用することができますあなたがORDER_BYが欠けているように、あなたは

SELECT price,id,state,symbol,trade,created_date from share5 group by id order by created_date desc; 
0

てみてくださいを試すことができそうですこれは:

SELECT price,id,state,symbol,trade,created_date from share5 where created_date = (select max(created_date)from Customers) group by id,price,state,symbol,trade,created_date