Я действительно новичок в SQL, и я столкнулся с проблемой, как показано ниже:
![https://i.stack.imgur.com/AJkmv.png](https://i.stack.imgur.com/AJkmv.png)
Представьте, что этот человек совершал платежи в соответствующие сроки, ссоответствующие идентификаторы.
Я бы хотел узнать сумму самого раннего платежа.Если для самой ранней даты есть несколько записей, я бы хотел выбрать запись с наименьшим идентификатором платежа.
На этом изображении ответ прост, но что, если самый ранний платеж был произведен 5 апреля?
После удаления пробелов в заголовках и поиска ответов в верхнем и нижнем регистре я написал следующее:
SELECT PaymentID, PaymentAmt
FROM
(
SELECT
MIN(s.PaymentID),
s.PaymentDate,
s.PaymentAmt,
ROW_NUMBER() OVER(PARTITION BY s.PaymentID ORDER BY s.PaymentDate) rn
FROM sheetName s
GROUP BY s.userid, s.PaymentDate, s.PaymentAmt
) t
WHERE rn = 1;
И все равно это не работает.
Может ли кто-нибудь помочь мне с этим?
РЕДАКТИРОВАТЬ: Как написано в моем ответе Марку, что, если я вместо этого смотрю на группу людей?Таким образом, мог бы быть другой человек с другим "userID" с их набором идентификаторов оплаты и т. Д. Если я хочу узнать самую раннюю сумму оплаты для каждого человека, что было бы хорошим решением?