2017-06-27 23 views
0

私は与えられた範囲のセット1-100101-10001を持っています。私は各範囲の最大レコードを探したい。与えられた範囲の最大レコードを見つける方法

入力:

Distance Rate 
10  5 
25  200 
50  300 
1000  5 
2000  2000 

出力:

Distance Rate 
50  300 
2000  2000 

私はおよそ select max(rate) from table group byまたは他のウィンドウ関数を考えていました。この質問は他の同様の質問には近すぎるため、私は与えられた日付のような他の同様の質問に対する解決策しか見つけませんでした。

範囲は人間からの入力ですが、テーブルを作成することができます。

+0

?あなたはそれらをテーブルに保管していますか? –

+0

@vkp範囲は人間の入力ですが、テーブルを作成できます。 –

答えて

0

だけgroup byを使用します。

範囲はから来ている
select (case when distance <= 100 then 'group 1' 
      when distance <= 1000 then 'group 2' 
      else '!?!' 
     end) as range_group, 
     max(rate) 
from t 
group by (case when distance <= 100 then 'group 1' 
       when distance <= 1000 then 'group 2' 
       else '!?!' 
      end); 
+0

範囲の(レート - 平均(レート))を計算したい場合はどうすればよいですか?それは同じですか? –

+1

@JohnHassはい、 'max(rate)'を 'rate-avg(rate)'に変更してください。または両方の値を持つように追加します。 – dd4711