我有一個很簡單的表稱爲MYTABLE:SQL查詢分鐘(y)的最大值(Y)和X在一組由
TSTAMP VARCHAR(20), VALUE VARCHAR(20)
時間戳是像YYYY-MM-DDTHH:MM:SS.zzzZ (例如:2017-04-25T12:23:00.000Z)。 價值是一個浮動。
我知道這個表模型很糟糕,但是很多年前由其他人明顯不知道他/她在做什麼的時候已經完成了。我試圖寫一個有效的查詢來獲取最小值(VALUE),最大值(VALUE)和時間間隔(例如:每分鐘的最小值/最大值)的TIMESTAMP。 我能夠通過以下查詢獲取最小值和最大值,但我無法看到獲取其時間戳的方法。
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;
WHERE 1493115780000的結果是:
SELECT UNIX_TIMESTAMP('2017-04-25T12:23:00.000Z')*1000+SUBSTR('2017-04-25T12:23:00.000.000Z',-4,3);
*編輯,因爲我沒有正確地解釋 我所得到的是每個區間: 第一時間戳,lasttimestamp,最小值,MAXVALUE ,內部數字,第一次時間戳
我想要的是: 最小值時間戳,最大值時間戳,最小值,最大值,間隔al號
我正在使用Mysql 5.5。
任何幫助,將不勝感激:) 它看起來像一個大學教程,但現在這是太落後了我:(
這將是很好,如果你張貼錯誤信息你得到 –
@ElmerDantas我沒有得到錯誤信息。這只是我無法弄清楚如何獲得最小值和最大值的時間戳。 – Marc
@Milney:我不是誰定義的數據模型這一個(我一直在抱怨它多年....)我知道這是錯誤的... – Marc