我试图显示付款金额最高的客户号码



付款表

Select customerNumber from Payments 
where Amount = (Select Sum(amount) from products order by customerNumber)

在这里,客户编号重复。所以,我已经计算出了比最高金额还要多的金额,但在我的查询中,我没有得到结果。

"创建表payments(CCD_ 2 int(11(NOT NULL,CCD_ 3 varchar(50(不为空,CCD_ 4日期不为空,CCD_ 5十进制(10,2(NOT NULL,主密钥(customerNumbercheckNumber(,约束payments_ibfk_1外键(customerNumber(引用customers(customerNumber()ENGINE=InnoDB DEFAULT CHARSET=latin1;

/*表payments*/的数据

payments(customerNumbercheckNumberpaymentDateamount(中插入值

(103,'q336336','2004-10-19','6066.78'(,

(103,'JM555205','2003-06-05','14571.44'(,

(103,'m314933','2004-12-18','1676.14'(,

(112,'BO864823','2004-12-17','14191.12'(,

(112,'q55022','2003-06-06','32641.98'(,

(112,'ND748579','2004-08-20','33347.88'(,

(114,'g31455','2003-05-20','45864.03'(,

(114,'MA765515','2004-12-15','82261.22'(,

(114,'NP603840','2003-05-31','7565.08'(,

(114,'r27552','2004-03-10','44894.74'(,

(119,'DB933704','2004-11-14','19501.82'(,

(119,'n373447','2004-08-08','47924.19'(,

(119,'NG94694','2005-02-22','49523.67'(,

(121,'DB889831','2003-02-16','50218.95'(,

(121,'d317790','2003-10-28','1491.38'(,

(121,'KI831359','2004-11-04','17876.32'(,

(121,'MA302151','2004-11-28','34663.14'(,

(124,'e215433','2005-03-05','101244.59'(,

(124,'BG255406','2004-08-28','85410.87'(,

(124,'q287967','2003-04-11','11044.30'(,

(124,'t64396','2005-04-16','83598.04'(,

(124,'hi36674','2004-12-27','47142.70'(,

(124,'HR86578','2004-11-02','55639.66'(,

(124,'KI131716','2003-08-15','111654.40'(,

(124,'f217299','2004-03-26','43369.30'(,

(124,'t141748','2003-11-25','45084.38'(,

(128,'DI925118','2003-01-28','10549.01'(,

(128,'fa456482','2003-10-18','24101.81'(,

(128,'h668230','2004-03-24','33820.62'(,

(128,'p383901','2004-11-18','7466.32'(,

(129,'DM826140','2004-12-08','26248.78'(,

(129,'ID449593','2003-12-11','23923.93'(,

(129,'PI42991','2003-04-09','16537.85'(,

(131,'l442705','2003-03-12','22292.62'(,

(131,'MA724562','2004-12-02','50025.35'(;

使用RANK查询,我们可以尝试:

SELECT customerNumber
FROM Payments
GROUP BY customerNumber
HAVING SUM(amount) = (SELECT SUM(amount) FROM Payments GROUP BY customerNumber
ORDER BY 1 DESC LIMIT 1);

如果您需要满足有多个客户与最高总数绑定的可能性,那么我们可以使用子查询或customerNumber0分析函数。使用前者:

PD_4

最新更新