SQL: вычисление общего изменения за каждый день с использованием даты

Оба других ответа выполняют то, что вы хотите.

Функцию pivot можно использовать для упорядочивания данных в таблице nice

df.groupby(['Fruit','Name'],as_index = False).sum().pivot('Fruit','Name').fillna(0)



Name    Bob     Mike    Steve   Tom    Tony
Fruit                   
Apples  16.0    9.0     10.0    0.0     0.0
Grapes  35.0    0.0     0.0     87.0    15.0
Oranges 67.0    57.0    0.0     15.0    1.0
0
задан ceno980 29 March 2019 в 09:38
поделиться

2 ответа

Это прекрасно работает для меня.

SELECT s2.*, s1.Total 
FROM Stores s1
LEFT JOIN Stores s2 on s1.Store = s2.Store
     AND DATEDIFF(day, s2.Date, s1.Date) = -1

WHERE s2.Total IS NOT NULL
ORDER BY s1.Date, s1.Store
0
ответ дан MkGm7 29 March 2019 в 09:38
поделиться

Вы можете использовать 2-й максимальный идентификатор как, но нулевые данные вы не можете избежать лучше, вы просто игнорируете данные при извлечении / отображении:

SELECT tbl2.Date, tbl2.Store, tbl2.total, 
(select total from test_table tbl1 where tbl1.Store = tbl2.Store and tbl1.id < tbl2.id) as prev_Total 
FROM `test_table` tbl2

Результат:

Date       |   Store  |  total | prev_Total |
--------------------------------------------
2019-03-21 |   ABC    |  56.98 | NULL       |
--------------------------------------------
2019-03-21 |   DEF    |  60.34 | NULL       |
--------------------------------------------
2019-03-21 |   XYZ    |  46.50 | NULL       |
--------------------------------------------
2019-03-21 |   ABC    |  80.43 | 56.98      |
--------------------------------------------
2019-03-21 |   DEF    |  70.09 | 60.34      |
--------------------------------------------
0
ответ дан Ashu 29 March 2019 в 09:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: