我有一個表trip_data
。每隔一秒我會收到數據包並將數據插入數據庫。 trip_data
表包含四個fields.trip_paramid,fuel_content,creation_time&vehicle_id
。我想要選擇創建時間爲2分鐘(不完全是2.大約2)之間的差異的所有行。 trip_data
表包含40缺乏rows.So我需要一個優化的選擇查詢this.Can人對this.Here幫助是表架構的trip_table &樣本數據..Mysql查詢查找指定行
回答
SELECT
tp.*
FROM
trip_parameters tp
GROUP BY
CONVERT(UNIX_TIMESTAMP (tp.creation_time)/(2*60), unsigned)
ORDER BY
tp.creation_time asc
注意,使用UNIX_TIMESTAMP不ñ OT允許您處理超過2037年的日期使用以下,而不是解決問題:
CONVERT(TIMESTAMPDIFF(SECOND,'1970-01-01 00:00:00',tp.creation_time)/(2*60), unsigned)
試試這個
SELECT trip_paramid, fuel_content, creation_time, vehicle_id
FROM trip_parameters
GROUP BY FLOOR(UNIX_TIMESTAMP(creation_time)/120)
這需要每2分鐘塊的一個項目
我認爲這個答案是錯誤的,因爲當我執行上面的查詢我得到了2012-11-08 01:21:37,2012-11-08 01:22:37之間的區別兩個不是兩分鐘。請更正您的答案 –
是的,這會從每2分鐘塊中取出一個值,塊屏障是2012-11-08 01:22因此第一個值來自不同的塊,而不是下一個塊。我認爲我的答案與heikkim的正確答案非常相似,只是四捨五入的時間不同,我沒有訂購數字。 –
可以使用MYSQL User defined variables做一個表掃描。不幸的是,UDV的數據類型有限(整數,小數,浮點,二進制或非二進制字符串)。因此,在此查詢中,我使用char @ti
變量來存儲使用CAST的以前的日期時間,並將其與Creation_time
字段進行比較。也因爲這個變量我設置爲(NOW() - 10000000)初值你可以使用任何你約會希望低於MIN(CREATION_TIME)
select * from
(
select trip_parameters.*,
if(ABS(TIMESTAMPDIFF(MINUTE,Creation_time,cast(@ti as datetime)))>=2,1,0) t,
@ti:=if(ABS(TIMESTAMPDIFF(MINUTE,Creation_time,cast(@ti as datetime)))>=2,
cast(Creation_time as char(100)),@ti)
from trip_parameters,
(select @ti:=cast(now()-10000000 as char(100))) a
order by creation_time
) t2
where T=1
order by creation_time
查詢正在工作..但執行時間非常長 – vmb
- 1. 查找查詢從指定數組
- 2. 查找MySql查詢運行時間?
- 3. MySQL查詢查找多行匹配
- 4. MySQL表查找查詢
- 5. MySQL爲特定查詢指定innodb_lock_wait_timeout
- 6. 指定查詢
- 7. MySQL查詢找到
- 8. 尋找MySQL查詢
- 9. 如何在MySQL查詢結果中查找特定行?
- 10. 在mysql查詢中運行mysql查詢
- 11. Powershell查找特定行(查詢)psobject
- 12. MySQL查找行
- 13. 的MySQL - 指定查詢變量
- 14. 指定別名子查詢的MySQL表
- 15. 在MySQL查詢中指定變量
- 16. 未定義指數笨MySQL查詢
- 17. 指定SQL查詢
- 18. MySQL查詢優化 - 指數
- 19. MYSQL查詢找到特定的模式
- 20. 查詢查找表定義
- 21. mySql查詢找不到該行
- 22. MySQL查詢找到重複的行
- 23. 否定MySQL查詢
- 24. MySQL查詢多行
- 25. 執行MySQL查詢
- 26. MySQL查詢「多行」
- 27. 查詢MySQL中運行查詢
- 28. 找不到mysql查詢
- 29. 尋找mysql子查詢
- 30. 幫我找出MySQL查詢
什麼shud是樣本輸出你期待在這裏? – AnandPhadke
輸出應該包含字段trip_paramid,fuel_content,creation_time&vehicle_id。如果我們對後續行(即輸出中)的「creation_time」字段進行區分,那麼它應該大約2分鐘。 – vmb
@vmb假設第1行包含2012-11-08 01:21:37,第2行包含2012-11-08 01:25:37。這裏時差超過2分鐘。所以我應該顯示哪一個2012-11-08 01:21:37或2012-11-08 01:25:37 ?? –