我有一個用於繪圖和數據檢查的大型數據庫。爲簡單起見,假設它看起來是這樣的:有沒有辦法在SQL中應用移動限制>
| id | day | obs |
+----------+-----------+-----------+
| 1 | 500 | 4.5 |
| 2 | 500 | 4.4 |
| 3 | 500 | 4.7 |
| 4 | 500 | 4.8 |
| 5 | 600 | 5.1 |
| 6 | 600 | 5.2 |
...
這可能是股市的數據,在這裏我們有一個測量每天多點。
我想要做的是看更長的趨勢,每天多點不必要地解決,並堵塞我的繪圖應用程序。 (我想看看30000天,每個有大約100觀察)。
有沒有辦法做這樣的事情SELECT ... LIMIT 1 PER "day"
我想我可以執行一些SELECT DISTINCT
查詢,找到正確的ID,但我寧願做一些簡單的,如果它是內置的。
它如果它是每天的第一個,最後一個或平均值,則無關緊要。只是一個單一的價值。我只是喜歡什麼是最快的。
此外,我想爲Postgres,MySQL和SQLite做到這一點。我的應用程序是建立使用所有三個,我經常在它們之間切換。
謝謝!
背景:這是針對Ruby on Rails繪製應用程序的,因此ActiveRecord的一個技巧也可以工作。 https://github.com/ZachDischner/Rails-Plotter
您是否只想爲每一天選擇一個值或每天的平均值? – 2013-02-15 16:37:14
請參閱這裏:[如何在SQL中選擇每個組的第一/最小/最大行](http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row -per基團在-SQL /)。 – 2013-02-15 16:38:28
我想我應該指定 - 但對我來說並不重要。長期趨勢可能需要隨機每日價值或平均值。平均可能只需要更多時間來執行查詢 – 2013-02-15 16:44:21