Mysql SQL-在时间跨度内选择x个条目
我正在MySQL中创建一个数据库,其中包含一个度量表。对于每次测量,我都要存储它到达的日期时间。为了在应用程序中显示日/周/月/年不同时间间隔测量的曲线图,我希望对我拥有的数据点进行采样,以便返回e。G全年以及当天/小时的30个数据点。这与股票价格图的操作相同: vs 如您所见,两张图片中的数据点数量相同 那么,如何通过SQL在MySQL的时间跨度内选择x个条目呢 我的数据如下所示:Mysql SQL-在时间跨度内选择x个条目,mysql,sql,count,precision,timespan,Mysql,Sql,Count,Precision,Timespan,我正在MySQL中创建一个数据库,其中包含一个度量表。对于每次测量,我都要存储它到达的日期时间。为了在应用程序中显示日/周/月/年不同时间间隔测量的曲线图,我希望对我拥有的数据点进行采样,以便返回e。G全年以及当天/小时的30个数据点。这与股票价格图的操作相同: vs 如您所见,两张图片中的数据点数量相同 那么,如何通过SQL在MySQL的时间跨度内选择x个条目呢 我的数据如下所示: +====+====================+=============+==========+ |
+====+====================+=============+==========+
| id | datetime | temperature | humidity |
+====+====================+=============+==========+
| 1 | 1-15-2016 00:30:00 | 20 | 40 |
+----+--------------------+-------------+----------+
| 2 | 1-15-2016 00:35:00 | 19 | 41 |
+----+--------------------+-------------+----------+
| 3 | 1-15-2016 00:40:00 | 20 | 40 |
+----+--------------------+-------------+----------+
| 4 | 1-15-2016 00:45:00 | 20 | 42 |
+----+--------------------+-------------+----------+
| 5 | 1-15-2016 00:50:00 | 21 | 42 |
+----+--------------------+-------------+----------+
| 6 | 1-15-2016 00:55:00 | 20 | 43 |
+----+--------------------+-------------+----------+
| 7 | 1-15-2016 01:00:00 | 21 | 43 |
+====+====================+=============+==========+
比如说,我总是想要更多的两个数据点。所以在过去的半小时里,我希望数据库返回数据点1和4,在过去的十分钟里,我希望它返回6和7
谢谢你的帮助
PS:我很抱歉我的英语有任何错误我相信你的答案可以在以下位置找到: 如果您希望筛选出不在您的日期/时间内的任何项目,您的查询将使用:
从表中选择*,其中日期/时间是您想要排序的依据。好的,假设采用非常简单的系统方法,您可以获得任何定义期间的第一个和最后一个条目:
select *
from table
where mydatetime =
(select
max(mydatetime)
from table
where mydatetime between '2017-03-01' and '2017-03-15'
)
OR mydatetime =
(select
min(mydatetime)
from table
where mydatetime between '2017-03-01' and '2017-03-15'
)
我认为样本数据和期望的结果将阐明您真正想要做的事情。从DateTime开始,您可以按天/周/月/年进行分组。您希望从总体数据中进行抽样,还是希望对其进行分组和聚合,例如,取平均值、最大值、,还是每个时间段的最小值?我想从我的总体数据中取样。一天图中的数据点比一个月图中的数据点多得多。在任何情况下,是否希望每个时段的行数相同?你在30分钟内提到2分,或者每10分钟提到2分。或者你总是想要任何时期的2分?您希望系统地选择分数,例如,周期中的第一个和最后一个分数,还是随机选择?如果是随机的,则您可以在每个选择中获得不同的结果。请将此作为注释添加到问题中。如果我尝试添加注释,则会出现一个对话框,告诉我我没有足够的声誉进行注释:/谢谢,但我已经知道了这一点。我想对数据点进行采样,我想说,我想要30个均匀分布的数据点。