2016-07-26 104 views
1

我有一個表,廣泛地具有detamentid,location,DOJ,sal &年齡的細節。group by by and order by得到oracle中的結果

我想知道最大SAL,最大年齡,DEPID &地點組由DEPID:

我寫了失敗對錶執行以下查詢。

SELECT depid,location,MAX(sal),MAX(age) FROM company GROUP BY depid ORDER BY doj DESC 

錯誤: ORA-00979:不是GROUP BY表達式

表數據: table data

結果預計: out come

+1

[編輯]你的問題,並添加基於該數據的一些樣本數據和預期輸出。 _Formatted_文本,請[無屏幕截圖](http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking-a-問題/ 285557#285557) –

回答

1

你應該這樣寫:

SELECT 
depid, 
first_value(location)over(partition by depid order by doj desc) location , 
MAX(sal), 
MAX(age) 
FROM company GROUP BY depid ORDER BY doj DESC 
+0

我想從所有depids中獲取頂部位置id作爲結果集。 – user4047127

+0

我編輯我的答案 –

2

有兩種方式:

  1. 包括locationGROUP BY子句。
  2. 在你的選擇中使用像MAX(location)這樣的聚合函數。