2017-02-17 13 views
1

Я пытаюсь узнать, как использовать функцию MAX в WHERE CLAUSE.SQL LEARNING/MAX Understanging

Так сказать, что я имел таблицу или 2 таблицы или 3. И у меня есть

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

И я хочу, чтобы вернуть значение MAX для col1 со ссылкой на Col 3. SO

A1 300 
A2 400 
A3 700 

Что было бы хорошей идеей, как это сделать? Должен ли я использовать MAX?

+1

Используйте предложение HAVING для условий агрегатной функции. Но здесь вы хотите GROUP BY и MAX в списке выбора. – jarlh

+0

Что именно вы хотите иметь в разделе 'WHERE'? В вашем примере нет 'WHERE'. –

ответ

0

Вы могли бы просто использовать

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

Функция MAX является агрегатной функцией, которая действует на множестве строк. . если у вас есть

select MAX(col3) from table; 

Вы получаете наибольшее значение в col3 всех строк. Кроме того, вы можете группировать строки с предложением GROUP BY, которое заставляет функцию MAX работать только по строкам каждой группы. Что вы просите за это

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

Это создает группы строк с одинаковым значением в col1 и для каждой из этих групп максимум col3 рассчитывается.