假设我有一个像这样的付款表:
CREATE TABLE Payments (
PaymentID INT,
CustomerID INT,
Value INT,
PaidOn DATE
);
INSERT INTO Payments
VALUES
(1, 1, 5, '2000-01-01'),
(2, 1, 10, '2000-02-01'),
(3, 2, 10, '2000-01-02'),
(4, 2, 10, '2000-01-20'),
(5, 2, 5, '2000-02-02'),
我想对整个行运行查询,以了解每个客户支付的最高付款额。是否可以使用单个 SQL 查询来避免挖掘我不感兴趣的每一行,或者更糟糕的是,为每个客户运行一个查询?
到目前为止我想出的最好的办法是:
SELECT CustomerID, MAX(Value)
FROM Payments
GROUP BY CustomerID;
但这并没有给我PaymentId
or PaidOn
它找到的行的值。