2016-07-26 14 views
1

Ich habe eine Tabelle, die im Großen und Ganzen die Details wie Abteilung, Standort, DOJ, Sal & Alter haben.Kombination der Gruppe von und bestellen, um die Ergebnisse in Orakel zu erhalten

Ich wünsche den max sal, max Alter wissen, depid & Ortsgruppe von depid:

schrieb ich die folgende Abfrage, die auf dem Tisch zur Ausführung fehlgeschlagen ist.

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

Fehler: ORA-00979: kein GROUP BY-Ausdruck

Tabellendaten: table data

Ergebnis erwartet: out come

+1

[Bearbeiten] Ihre Frage ein und fügen Sie einige Beispieldaten und die erwartete Ausgabe auf der Grundlage dieser Daten. _Formatted_ Text bitte, [keine Screenshots] (http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking-a- Frage/285557 # 285557) –

Antwort

1

Sie so schreiben sollte:

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

Ich möchte die Top-Location-ID aus allen Depids als Ergebnismenge erhalten. – user4047127

+0

Ich bearbeite meine Antwort –

2

Sie haben zwei Möglichkeiten:

  1. Include location bis GROUP BY Klausel.
  2. Verwenden Sie die Aggregatfunktion wie MAX(location) in Ihrer Auswahl.