2013-06-25 2 views
0

У меня есть таблица, содержащая 3 столбца - time_stamp,meter_id,value. Все meter_ids записывают значение в ареале времени .EX-:Поиск последнего значения, регистрируемого в mysql

time_stamp  value meter_id 

06/14/13 12:17:00 1212 1 
06/15/13 12:20:01 12  1 
06/16/13 12:25:30 1213 2 
06/17/13 12:30:12 12333 2 
06/18/13 12:32:34 111111 3 

Мне нужно найти самую последнее значение для каждого meter_id.

Редактировать

Конечный результат должен быть -:

time_stamp   value meter_id 

06/15/13 12:20:01 12  1 
06/17/13 12:30:12 12333  2 
06/18/13 12:32:34 111111 3 

Я надеюсь, что это поможет вам понять мой вопрос.

спасибо

+0

time_stamp регистрирует время? – Prashant16

ответ

1

Может быть, вы хотите что-то вроде этого?

select value, Meter_id from table group by Meter_id order by time_stamp desc 
0

Я предполагаю, что это time_stamp времени регистрации, если так попробовать этот

SELECT MAX(time_stamp),meter_id,value FROM table GROUP BY meter_id 
+0

ваш запрос даст максимальное значение, если значение увеличивается каждый раз. Но несколько раз его случай, например, некоторые метрики, отключен или значение меньше предыдущего значения – user1896796

0

Если я понял правильно, вы хотите самого последнюю запись для всех счетчиков идентификаторов. Вы самостоятельно можете присоединиться к столу и использовать group by

select 
b.time_stamp, b.value, b.meter_id 
from 
    your_table as b 
    inner join (
    select max(time_stamp) as recent_time, meter_id 
    from your_table 
    group by meter_id 
) as view on (view.meter_id = b.meter_id and view.unique_key_from_your_table = b.unique_key_from_your_table) 

Если у вас нет какого-либо уникального ключа, но временной метки. Вы можете взять time_stamp в unique_key_from_your_table

Так присоединитесь состояние будет выглядеть

view.meter_id = b.meter_id and view.recent_time = b.time_stamp 
0

Try:

select r.* 
from myTable r 
join (select meter_id, max(time_stamp) max_time 
     from myTable 
     group by meter_id) m 
    on r.meter_id = m.meter_id and r.time_stamp = m.max_time