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