我有一个用于绘图和数据检查的大型数据库。为简单起见,假设它看起来是这样的:有没有办法在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