Я использую SQL Server 2005. У меня есть таблица платежей с идентификаторами платежей, идентификаторами пользователей и временными метками.Я хочу найти самую последнюю оплату для каждого пользователя.Это легко найти и найти ответ.Однако я также хочу знать, является ли последний платеж первым платежом пользователя.
У меня есть следующее, которое будет подсчитывать выплаты каждого пользователя:
SELECT
p.payment_id,
p.user_id,
ROW_NUMBER() OVER (PARTITION BY p.user_id ORDER BY p.payment_date) AS paymentNumber
FROM
payment p
не совершая умственного скачка, который затем позволяет мне выбрать самый высокий paymentNumber для пользователя.Если я использую вышеперечисленное в качестве подвыбора, используя MAX (paymentNumber), а затем группируюсь по user_id, я теряю payment_id, который мне нужен.Но если я также добавлю payment_id в группу group by, я вернусь к одной строке для каждого платежа.Я уверен, что я упускаю из виду очевидное.Любая помощь?