でグループを超える最大(y)とX:SQLクエリ分(y)は、私は非常に単純なテーブルと呼ばれるMYTABLEを持って
TSTAMP VARCHAR(20), VALUE VARCHAR(20)
タイムスタンプはYYYY-MM-DDTHHのようなものです:MM:SS.zzzZ (例:2017-04-25T12:23:00.000Z)。 値は浮動小数点数です。
私はこのテーブルモデルがちょっと悪いことを知っていますが、何年も前に彼/彼女が何をしているのか分かりませんでした。
min(VALUE)、max(VALUE)、およびそれらのTIMESTAMPを時間間隔(例:分/分)で取得する効率的なクエリを作成しようとしています。 次のクエリで最小値と最大値を取得できましたが、タイムスタンプを取得する方法がわかりません。
SELECT UNIX_TIMESTAMP('2017-04-25T12:23:00.000Z')*1000+SUBSTR('2017-04-25T12:23:00.000.000Z',-4,3);
* EDIT私が正しく 何私が取得する各間隔のためであると説明されなかったので: 最初のタイムスタンプ、lasttimestamp、最小値、MAXVALUE 1493115780000は結果をある
SELECT MIN(tstamp)
, MAX(tstamp)
, MIN(value) minVal
, MAX(value) max
, ABS(TRUNCATE(((UNIX_TIMESTAMP(tstamp)*1000+SUBSTR(tstamp,-4,3)) - 1493115780000)/20000,0)) intervalNumber
, tstamp
FROM mytable
WHERE tstamp BETWEEN '2017-04-25T12:23:00.000Z' AND '2017-04-25T12:24:00.000Z'
AND NOT tstamp = '2017-04-25T12:24:00.000Z'
GROUP
BY intervalNumber;
、暗証番号、最初のタイムスタンプ
私が望むもの: 最小値のタイムスタンプ、最大値のタイムスタンプ、最小値、最大値、中間値アル番号
私はMysql 5.5を使用しています。
任意の助けをいただければ幸いです:) それは、大学のチュートリアルのように見えますが、これはあまりにも遠くに私の後ろに今ある:(ABS(TRUNCATE(((UNIX_TIMESTAMP(TSTAMP)*1000+SUBSTR(TSTAMP,-4,3)) - 1493115780000)/20000,0)) as intervalNumber
が正しいと仮定すると、
エラーメッセージが表示されたら、それはいいです –
@ElmerDantasエラーメッセージが表示されません。ただ、私は最小値と最大値のタイムスタンプを取得する方法を理解することができません。 – Marc
@Milney:私はこのデータモデルを定義した人ではありません(私は何年もそれに不平を言っています....)私はそれが間違っていることを知っています... – Marc