2016-04-07 14 views
1

各行に値とdatetimeが含まれているテーブルがあります。それは何十万行もあります。私は最高の(最大)値をn行毎に選択したいと思っています。私は以前、最高値ごとに時間を取得するためにクエリを使用していたが、これは私が探していますかなりものではありませんn行ごとに最大値を取得

SELECT datetime, MAX(value) 
FROM `table` 
GROUP BY date_format(datetime, '%Y-%m-%d &h') 

何かアドバイスをいただければ幸いです!

+1

をどのようにすべてのn個のrows'のために '指定するのでしょうか?日時や他の基準に基づいていますか? –

+0

行はdatetimeで順序付けされ、索引付けされます。だから私は、最初の100の値の最高値を取得し、次に2番目の100行の最高値を取得したいと思います。 – Kyle

答えて

1

あなたはあなたの心の欲求に集約その後、行を列挙し、することができます

select min(rn), max(rn), min(datetime), max(datetime), max(value) 
from (select t.*, (@rn := @rn + 1) rn 
     from `table` t cross join 
      (select @rn := 0) params 
     order by datetime 
    ) t 
group by floor((rn - 1)/@n) 
order by min(rn); 
+0

完璧な、ちょうど私が後だった。ありがとうございました! – Kyle

関連する問題