2017-02-17 9 views
1

WHERE CLAUSEでMAX関数を使用する方法を学習しようとしています。SQL LEARNING/MAX Understanging

だから、SO

A1 300 
A2 400 
A3 700 

を私はテーブルまたは2つのテーブルまたは3を持っていたし、私は

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

を持っていると私はCOL 3を参照してCOL1のためのMAX値を返すようにしたいと言いますどのようにこれを行うの良いアイデアだろうか?私はMAXを使っているべきですか?

+1

集約関数条件にHAVING節を使用します。しかしここでは、選択リストにGROUP BYとMAXが必要です。 – jarlh

+0

WHERE句に正確に何を入れたいですか?あなたの例では、必要な場所はありません。 –

答えて

0

あなただけのMAX関数は行のセットで動作する集約関数です

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

を使用することができます。 など。お持ちの場合

すべての行のcol3の中で最大の値を取得します。 さらに、MAX関数を各グループの行に対してのみ動作させるGROUP BY句で行をグループ化することもできます。 何を求めていることは

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

これは、COL1で同一の値とし、col3というの最大値が算出され、これらのグループのそれぞれについて、行のグループを構築しています。