我有一个表,名为:customers
。选择最大值的记录
我试图得到有最高工资的人的名字和工资。
所以我已经试过这样:
SELECT name, salary AS MaxSalary
FROM CUSTOMERS
GROUP BY salary
HAVING salary = max(salary)
不幸的是,我得到这个错误:
Column 'CUSTOMERS.name' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
我知道我应该的名字列添加到group by
条款,但我得到的所有记录的表格。
我知道我可以做到这一点:
SELECT name, salary
FROM CUSTOMERS
WHERE salary = (SELECT MAX(salary) FROM CUSTOMERS)
但我想通过group by
和having
条款来实现它。
这只是OP的查询的一个更复杂的版本,它也不起作用。 – dnoeth
当然这个查询工作。 你会得到什么错误? – masuduzzaman
你会得到:“* Column'CUSTOMERS.name'在选择列表中是无效的,因为它不包含在聚合函数或GROUP BY子句中*” –