看板 Database 關於我們 聯絡資訊
對 MySQL 不太熟 底下的語法應該可以達成你要的功能 SELECT ID, VALUE, DATE_TIME FROM DATE_TEST MAIN,(SELECT MAX(DATE_TIME) DATE_TIME2 FROM DATE_TEST GROUP BY DATE_FORMAT(DATE_TIME, '%Y%m%d%H')) MAX_DATE WHERE MAIN.DATE_TIME = MAX_DATE.DATE_TIME2; 這只計算到小時,萬一同一小時內有多筆資料,就會查詢出多筆結果 也許你會想再限制其它條件,如下 SELECT ID, VALUE, DATE_TIME FROM DATE_TEST MAIN,(SELECT MAX(ID) ID2, MAX(DATE_TIME) DATE_TIME2 FROM DATE_TEST GROUP BY DATE_FORMAT(DATE_TIME, '%Y%m%d%H')) MAX_DATE WHERE MAIN.DATE_TIME = MAX_DATE.DATE_TIME2 AND MAIN.ID = MAX_DATE.ID2; ※ 引述《freewhat (這就是人生嗎)》之銘言: : 大家好,我用的是Mysql, : 這邊遇到一個問題,想請問是否能用一句sql語法就解決掉。 : id datetime value : -- -------------- ------ : 1 2010-01-01 02:30 30 : 2 2010-01-01 02:40 15 : 3 2010-01-01 02:55 20 : 4 2010-01-01 03:00 10 : ... : 2010-01-01 03:55 20 : 2010-01-01 04:10 25 : 2010-01-01 04:50 55 : 2010-01-01 05:10 20 : 我想要查出某日期下,某時的最後一筆 value為何 : 例如上面例子為 : datetime value : ---------------- ------ : 2010-01-01 02 20 : 2010-01-01 03 20 : 2010-01-01 04 55 : 如果用多筆語法我是會,不過要用單一語法解決想了很久不知如處理。 : 謝謝。 ※ 引述《freewhat (這就是人生嗎)》之銘言: : 大家好,我用的是Mysql, : 這邊遇到一個問題,想請問是否能用一句sql語法就解決掉。 : id datetime value : -- -------------- ------ : 1 2010-01-01 02:30 30 : 2 2010-01-01 02:40 15 : 3 2010-01-01 02:55 20 : 4 2010-01-01 03:00 10 : ... : 2010-01-01 03:55 20 : 2010-01-01 04:10 25 : 2010-01-01 04:50 55 : 2010-01-01 05:10 20 : 我想要查出某日期下,某時的最後一筆 value為何 : 例如上面例子為 : datetime value : ---------------- ------ : 2010-01-01 02 20 : 2010-01-01 03 20 : 2010-01-01 04 55 : 如果用多筆語法我是會,不過要用單一語法解決想了很久不知如處理。 : 謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.222.186
freewhat:我大致上看懂你的作法了,我星期一拿到電腦再試試看 03/13 14:59
freewhat:感謝 03/13 15:04
gohomexx:如果只是要2點的最後一筆,就select top1 再order by date 03/16 13:17
JoeHorn:樓上... 人家在提 MySQL ... 03/17 02:19