我有一個表,名爲: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子句中*」 –