Вот пример моих данных:
VendingID Date SnackType User TotalBought
9 2014-11-30 chocolate ben 10
9 2015-11-30 chocolate frank 12
9 2016-11-30 chocolate ben 9
9 2014-11-30 crisps ben 10
9 2015-11-30 crisps frank 12
9 2016-11-30 crisps ben 9
10 2014-11-30 chocolate ben 10
10 2015-11-30 chocolate frank 12
10 2016-11-30 chocolate ben 9
10 2017-11-30 chocolate frank 7
10 2018-11-30 chocolate frank 7
10 2019-11-30 chocolate frank 6
10 2014-11-30 crisps frank 9
10 2015-11-30 crisps frank 7
10 2016-11-30 crisps ben 9
10 2017-11-30 crisps frank 7
10 2018-11-30 crisps ben 3
10 2019-11-30 crisps ben 2
Можно ли суммировать общее количество купленных закусок по типу для данного VendingID для пользователя, который является самым последним,возвращаться только в течение нескольких лет подряд, пока пользователь не изменится?
Таким образом, ожидаемый результат для VendingID 10 будет таким: для шоколада пользователь будет «откровенным», что составит 2019, 2018 и 2017 только в том случае, если естьизменение в пользователе, которое вернуло бы значение 6 + 7 + 7 = 20. В том же запросе я также хотел бы вернуть то же самое для чипсов, так что пользователь будет 'бен', суммируя только 2019 и 2018, чтобудет 2 + 3 = 5. Таким образом, возвращаемый результат будет:
SnackType SumTotalBought
chocolate 20
crisps 5
Так что я думаю, что я могу получить SnackType и USer по VendingID для текущей (самой последней) даты, но не знаю, как получить диапазон, который относится к последовательным годам, поэтому я могу суммировать TotalBought:
SELECT SnackType, User
FROM vendingOptions vo
JOIN (SELECT MAX(Date) as maxDate
FROM vendingOptions vo2
WHERE VendingID = '10') as md
ON md.maxDate = vo.Date
WHERE VendingID = '10'