相关疑难解决方法(0)

获取每组分组结果的前n条记录

以下是最简单的可能示例,但任何解决方案都应该能够扩展到需要的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 sql greatest-n-per-group mysql-variables

132
推荐指数
8
解决办法
14万
查看次数

MySQL中的时间序列数据:采样

我们有一个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完成所有这些,但有没有办法在数据库中直接进行?如果没有,我正在考虑使用时间序列数据库,但预算约束限制我只使用免费的数据库.是否有任何自由时间序列数据库提供开箱即用的采样,最好是插值?

mysql time-series

7
推荐指数
1
解决办法
3966
查看次数