2014-10-02 5 views
0

У меня есть этот запрос, пытаясь подвести раз:Mysql LEFT JOIN ON предпоследнего ид только

SELECT t1.id, t1.number, t1.time - COALESCE(SUM(t2.time), 0) time FROM times t1 
LEFT JOIN times t2 ON t1.number = t2.number AND t2.id < t1.id 
GROUP BY t1.id, t1.number, t1.time 

Выход:

id   number   time (in seconds) 
-------------------------------------------- 
1   9    65 
2   5    78 
3   7    92 

Он отлично работает, но мне нужно просуммировать только с предпоследним идентификатором условие LEFT JOIN в пункте (t2.id < t1.id).

+1

пожалуйста, вы можете опубликовать имеющиеся данные и ожидаемые результаты? –

ответ

1

Для выбора предпоследнего идентификатора

SELECT t1.id, t1.number, t1.time - COALESCE(SUM(t2.time), 0) time FROM times t1 
LEFT JOIN times t2 ON t1.number = t2.number 
AND t2.id = (select id from times order by id desc limit 1,1) 
GROUP BY t1.id, t1.number, t1.time