У меня есть предварительный запрос, чтобы вернуть общее количество фруктов, съеденных конкретным человеком. Я также хотел бы включить самый последний раз, когда фрукт был съеден.
Вот мой запрос:
SELECT
id,
fruittype,
count(*) as fruitconsumptioncount
FROM
(VALUES
( 'John', 'apple', '2017-10-15 16:35:27.000'),
( 'John', 'apple', '2017-10-16 16:35:27.000'),
( 'John', 'apple', '2017-10-17 16:35:27.000'),
( 'John', 'orange', '2017-10-14 16:35:27.000'),
( 'John', 'orange', '2017-10-15 16:35:27.000'),
( 'John', 'orange', '2017-10-20 16:35:27.000'),
( 'John', 'banana', '2017-10-18 16:35:27.000'),
( 'Bob', 'kiwi', '2017-10-15 16:35:27.000')
) as dimensions (id, fruittype, consumptiontime)
GROUP BY
id,
fruittype
ORDER BY
id,
fruitconsumptioncount DESC`
Это возвращает:
id fruittype fruitconsumptioncount
Bob kiwi 1
John apple 3
John orange 3
John banana 1
Мне нужно, чтобы он вернулся:
id fruittype fruitconsumptioncount mostrecentconsumption
Bob kiwi 1 2017-10-15 16:35:27.000
John apple 3 2017-10-17 16:35:27.000
John orange 3 2017-10-20 16:35:27.000
John banana 1 2017-10-18 16:35:27.000
Это связано с тем, что я хочу в конечном итоге выполнить сортировку по верхнему типу фруктов на человека, но в случае ничьей я хочу вернуть связанный фрукт, который был съеден последним.