我有下表
Sales Key Cod Value
10 A 109 10.99
7 A 10 11.05
3 B 1 10.30
25 B 125 15.30
如何僅獲取每個鍵的最大(銷售)值,例如:
Sales Key Cod Value
10 A 109 10.99
25 B 125 15.30
我試過了:
SELECT MAX(sales), key, cod, value FROM table GROUP BY key
但我收到以下錯誤
expression 'cod' is neither present in the group by, nor is it an aggregate function
當我將鱈魚分組時,我得到了兩個值,而不僅僅是最大值。
我知道我可以使用視窗函式解決這個問題,但我認為這不是解決這個問題的有效方法。對此有什么想法嗎?
uj5u.com熱心網友回復:
使用視窗函式沒有任何問題。但如果你不喜歡這樣,你也可以只使用子查詢來避免你的GROUP BY問題:
SELECT
sales,
column1,
cod,
column2
FROM yourtable y1
WHERE sales =
(SELECT MAX(y2.sales)
FROM yourtable y2
WHERE y1.column1 = y2.column1)
ORDER BY column1;
注意:將查詢中的“key”和“value”列重命名為“column1”和“column2”,因為 SQL 關鍵字不應用作列名或表名。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/531943.html
標籤:sqlsql服务器
