MySQL子查询-最大金额

时间:2018-10-17 18:09:50

标签: mysql sql subquery

我是子查询的新手,我试图理解为什么我的常规查询没有返回与此子查询相同的结果。我正在关注这个tutorial,这是第一个“ Try it out”问题。 ->

我的查询是:

SELECT customerNumber,
       checkNumber,
       MAX(amount)
FROM payments

2 个答案:

答案 0 :(得分:1)

由于您使用了聚合函数max(),因此您必须使用group by,并且您的查询将如下所示

 SELECT customerNumber,
           checkNumber,
           MAX(amount)
    FROM payments
    group by customerNumber,
           checkNumber

答案 1 :(得分:0)

您正在本教程中测试的查询是不同的,它使您获得最大数量的行(仅一行):

SELECT customerNumber,
       checkNumber,
       amount
FROM payments
WHERE amount = (
    SELECT MAX(amount) 
        FROM payments
);

具有聚合函数的查询将为customerNumber和checkNumber的每种组合获取最大金额(可以是几种组合):

SELECT customerNumber,
           checkNumber,
           MAX(amount)
    FROM payments
    group by customerNumber,
           checkNumber

这一切都取决于您想要得到什么。