имя игрока, год его самого свежего матча, это просто -
SELECT player, MAX(year)
FROM champ_matches
GROUP BY player
Но я хочу ещё место проведения именно этого свежего матча.
И вот тут затыка.
Чего-то пытаюсь наваять типа
CASE WHEN year = MAX(year) THEH city END
Но это не кушается.
Что добавить в запрос, чтоб получить ещё city для последнего матча данного игрока?
Видимо , только с подзапросами
На Хабре ответили. Вроде можно добиться моей цели так: SELECT DISTINCT player, FIRST_VALUE(year) OVER (PARTITION BY player ORDER BY year DESC RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS maxYear, FIRST_VALUE(city) OVER (PARTITION BY player ORDER BY year DESC RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS mCity FROM champ_matches Выглядит, правда, монструозно)
Футбольный менеджер?
Если не бигдата, лучше подзапросом, так читабельнее будет.
Ну там указали, что можно без RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING И я не понимаю, что за подзапрос. Это мне все данные выгружать, потом перебирать их, и фильтровать уже средствами пхп, что ли? Задача вроде довольно тривиальной мне казалась. Есть таблица с заказами, у заказов есть id клиентов, есть дата заказа. И нужно выгрузить данные по последнему заказу каждого клиента. Оказалось, это гемор.
А если в базе будет 2 строки Karpov; 1978; Baguio Karpov; 1978; New York то какой результат должен вернуть этот гипотетический запрос?
Ну, в этом случае неважно какой. Одну строку из двух. Любую
Обсуждают сегодня