Ich versuche, den maximalen Wert aus einer Spalte auszuwählen, während die Gruppierung durch eine andere nicht eindeutige ID-Spalte, die mehrere doppelte Werte hat. Die ursprüngliche Datenbank sieht ungefähr so aus:Wählen Sie mehrere Spalten (keine Aggregatfunktion) mit GROUP BY
mukey | comppct_r | name | type
65789 | 20 | a | 7n
65789 | 15 | b | 8m
65789 | 1 | c | 1o
65790 | 10 | a | 7n
65790 | 26 | b | 8m
65790 | 5 | c | 1o
...
Diese Verwendung funktioniert gut:
SELECT c.mukey, Max(c.comppct_r) AS ComponentPercent
FROM c
GROUP BY c.mukey;
, die eine Tabelle zurückgibt, wie:
mukey | ComponentPercent
65789 | 20
65790 | 26
65791 | 50
65792 | 90
ich andere Spalten hinzufügen zu können, wollen in ohne die GROUP BY-Funktion zu beeinflussen, um Spalten wie Name und Typ in die Ausgabetabelle einzubeziehen:
mukey | comppct_r | name | type
65789 | 20 | a | 7n
65790 | 26 | b | 8m
65791 | 50 | c | 7n
65792 | 90 | d | 7n
aber es gibt immer einen Fehler aus, der besagt, dass ich eine Aggregatfunktion mit Select-Anweisung verwenden muss. Wie soll ich das machen?
Was ist Ihr erwartetes Ergebnis? –
Hinzugefügt, dass op, Danke – Dylansq