我是子查询的新手,我试图理解为什么我的常规查询没有返回与此子查询相同的结果。我正在关注这个tutorial,这是第一个“ Try it out”问题。 ->
我的查询是:
SELECT customerNumber,
checkNumber,
MAX(amount)
FROM payments
答案 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
这一切都取决于您想要得到什么。