以下是最简单的可能示例,但任何解决方案都应该能够扩展到需要的n个顶级结果:
根据下面的表格,使用人员,组和年龄列,您将如何获得每组中最老的2个人?(组内的关系不应该产生更多结果,但按字母顺序给出前2个)
+--------+-------+-----+ | Person | Group | Age | +--------+-------+-----+ | Bob | 1 | 32 | | Jill | 1 | 34 | | Shawn | 1 | 42 | | Jake | 2 | 29 | | Paul | 2 | 36 | | Laura | 2 | 39 | +--------+-------+-----+
期望的结果集:
+--------+-------+-----+ | Shawn | 1 | 42 | | Jill | 1 | 34 | | Laura | 2 | 39 | | …
我们有一个MySQL数据库,我们在其中添加了时间序列值.
-------------------------------------
|Col A | Col B | Timestamp |
-------------------------------------
|1.23 | 4.48 |2013-09-03 10:45:27 |
-------------------------------------
|1.23 | 4.48 |2013-09-03 10:46:27 |
-------------------------------------
|1.23 | 4.48 |2013-09-03 10:47:27 |
-------------------------------------
Run Code Online (Sandbox Code Playgroud)
数据在时间上间隔不均匀,有些点间隔一分钟,有些点间隔几秒钟.
有没有一种有效的方法可以查询此数据库以每n分钟/秒/小时提取数据?理想情况下,我希望在第一n分钟有(线性)插值,但最接近第一n分钟的点或最后一点或在第一n点之前也是如此.
用例是我想将其绘制成图形,但不要求太多的点.因此,对于一年的情节,我宁愿每天只查询几个点.在绘制一天的时候,我想每分钟左右绘制一个点.
我可以用PHP完成所有这些,但有没有办法在数据库中直接进行?如果没有,我正在考虑使用时间序列数据库,但预算约束限制我只使用免费的数据库.是否有任何自由时间序列数据库提供开箱即用的采样,最好是插值?