2017-02-17 4 views
1

Ich versuche zu lernen, wie man die MAX-Funktion in der WHERE CLAUSE verwendet.SQL LEARNING/MAX Understanging

Also sage ich einen Tisch oder 2 Tische hatte oder 3. Und ich habe

col1 col2 col3 
A1  mark 200 
A1  Jon  300 
A2  Bill 100 
A2  Jen  400 
A3  will 250 
A3  ben  700 

Und ich will den MAX-Wert für col1 in Bezug auf die Rückkehr zum col 3. SO

A1 300 
A2 400 
A3 700 

Was wäre eine gute Idee, wie man das macht? Sollte ich sogar MAX benutzen?

+1

Verwenden Sie die HAVING-Klausel für Aggregatfunktionsbedingungen. Aber hier wollen Sie GROUP BY und MAX in der Auswahlliste. – jarlh

+0

Was genau wollen Sie in der WHERE-Klausel haben? In Ihrem Beispiel wird kein 'WHERE' benötigt. –

Antwort

0

Sie könnten nur

SELECT 
    col1, 
    MAX(col3) 
FROM 
    table_name 
GROUP BY 
    col1; 
2

Die Funktion MAX verwenden ist eine Aggregatfunktion, die auf einer Reihe von Zeilen arbeitet. Zum Beispiel wenn Sie

select MAX(col3) from table; 

haben Sie den größten Wert in col3 aller Zeilen erhalten. Zusätzlich können Sie die Zeilen mit der GROUP BY-Klausel gruppieren, wodurch die MAX-Funktion nur für die Zeilen jeder Gruppe wirksam wird. , was Sie fragen, ist

select col1, MAX(col3) from table GROUP BY col1; 

Dies baut Gruppen von Zeilen mit einem identischen Wert in col1 und für jedes dieser Gruppe wird die maximal col3 berechnet.