2016-10-19 17 views
-6

私は(異なるIDを持つ)、以下のようなテーブルがあるとしますが...ここで例えばは99を取った...SQLクエリは60秒以内に最大値を見つけるため

id hist_timestamp   DP mints Secnds value 
99 2016-08-01 00:09:40  1 9  40  193.214 
99 2016-08-01 00:10:20  1 10  20  198.573 
99 2016-08-01 00:12:00  1 12  0  194.432 
99 2016-08-01 00:52:10  1 52  10  430.455 
99 2016-08-01 00:55:50  1 55  50  400.739 
99 2016-08-01 01:25:10  2 25  10  193.214 
99 2016-08-01 01:25:50  2 25  50  193.032 
99 2016-08-01 01:34:30  2 34  30  403.113 
99 2016-08-01 01:37:10  2 37  10  417.18 
99 2016-08-01 01:38:10  2 38  10  400.495 
99 2016-08-01 03:57:00  4 57  0  190.413 
99 2016-08-01 03:58:40  4 58  40  191.936 

ここで私は始め、value列を持っています最初のレコードから次の60秒以内に最大値を見つける必要があります。その60秒間のグループでは、最大値のレコードを1つ選択する必要があります。

id hist_timestamp   DP mints Secnds value 
99 2016-08-01 00:10:20  1 10  20  198.573 
99 2016-08-01 00:12:00  1 12  0  194.432 
99 2016-08-01 00:52:10  1 52  10  430.455 
99 2016-08-01 00:55:50  1 55  50  400.739 
99 2016-08-01 01:25:10  2 25  10  193.214 
99 2016-08-01 01:34:30  2 34  30  403.113 
99 2016-08-01 01:37:10  2 37  10  417.18 
99 2016-08-01 03:57:00  4 57  0  190.413 
99 2016-08-01 03:58:40  4 58  40  191.936 

希望する出力を得るためにSQLクエリを作成する方法は?

ありがとうございました!

+0

で再帰例CTE以上の複雑なクエリのために必要があるだろうhttps://ozh.github.io/ascii-tables/を使用してください – krtek

答えて

0

簡単です。 GROUP BYMAX()の機能を使用してください。

例:

select max(value) as value from table where hist_timestamp between '2016-08-01 00:10:00' and '2016-08-01 00:10:59' group by value

これは、あなたの最大のユニークな値を与えます。それは

EDITを役に立てば幸い:あなたがテーブルに入った最初の日から、すべて60秒の最大値のようなより複雑なクエリを、必要な場合は、あなたが質問を書き換えるgroup by

関連する問題