Вот пример набора данных из таблицы:MySql: Получить следующий ряд значений
| callid | called | calling | end |
|------------|--------------|-------------|---------------------|
| 1411482360 | 001143792042 | 08444599175 | 2014-07-31 13:55:03 |
| 1476992122 | 001143792042 | 08441713191 | 2014-07-31 14:05:10 |
До сих пор мне удалось получить предыдущие значения строк и мне нужны следующие значения строки также. Вот мой запрос:
SELECT c.called as customer, c.calling as company, DATE_FORMAT(c.`end`,'%Y-%m-%d') as _date,
@G := if(@prevComp <> c.calling AND @prevCust = c.called AND @prevDate = DATE_FORMAT(c.`end`,'%Y-%m-%d'), 1, 0) as Gain,
@prevCust := c.called as prevCust,
@prevComp := c.calling as prevComp,
@prevDate := DATE_FORMAT(c.`end`,'%Y-%m-%d') as prevDate
FROM cdrdata_archive c CROSS JOIN
(SELECT @prevComp := NULL, @prevCust := NULL, @prevDate := NULL) prevVals
ORDER BY c.called, c.`end`
выше запрос возвращает следующий результирующий набор:
Customer Company Date prevCust prevComp prevDate Gain
00140443360 08434599117 2014-01-28 00140443360 08434599117 2014-01-28 0
00475172558 08434599218 2014-01-27 00475172558 08434599218 2014-01-27 0
00475172558 08434593455 2014-01-27 00475172558 08434599118 2014-01-27 1
мне нужны предыдущие и следующие значения строки для расчета потерянных и полученные звонки в каждой компании. Мне удалось получить правильные полученные значения, однако для вычисления значений Lost
(аналогично Gain
, но в новой колонке), Мне нужен следующий клиент, компания и дата.
Может ли это быть включено в этот запрос без особых затрат или мне нужно его переписать?
ли http://stackoverflow.com/questions/27160298/referencing-next-and-previous-row- ценности помогают? – Barmar