Я хочу сделать MySQL, чтобы получать ежедневные дифференциальные значения из таблицы, который выглядит следующим образом:MySQL запрос, чтобы получить суточный дифференциал значение
Date | VALUE
--------------------------------
"2011-01-14 19:30" | 5
"2011-01-15 13:30" | 6
"2011-01-15 23:50" | 9
"2011-01-16 9:30" | 10
"2011-01-16 18:30" | 15
Я сделал два подзапроса. Первые из них, чтобы получить последнее суточное значение, потому что я хочу, чтобы вычислить значение разности этих данных:
SELECT r.Date, r.VALUE
FROM table AS r
JOIN (
SELECT DISTINCT max(t.Date) AS Date
FROM table AS t
WHERE t.Date < CURDATE()
GROUP BY DATE(t.Date)
) AS x USING (Date)
второго один сделан, чтобы получить дифференциальные значения из результата первого (я показываю она с именем «стол»):
SELECT Date, VALUE - IFNULL(
(SELECT MAX(VALUE)
FROM table
WHERE Date < t1.table) , 0) AS diff
FROM table AS t1
ORDER BY Date
Сначала я пытался сохранить результат первого запроса во временную таблицу, но it's not possible to use temporary tables with the second query. Если я использую первый запрос внутри FROM второго из() с псевдонимом, жалобы сервера на псевдоним таблицы не существуют. Как можно получить что-то вроде этого:
Date | VALUE
---------------------------
"2011-01-15 00:00" | 4
"2011-01-16 00:00" | 6
спасибо, это работает как шарм. –