Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一个简单的mySQL查询+统计分析_Mysql_Sql_Select_Classification - Fatal编程技术网

一个简单的mySQL查询+统计分析

一个简单的mySQL查询+统计分析,mysql,sql,select,classification,Mysql,Sql,Select,Classification,我在一个大约有一百万条记录的数据库中寻找模式。我用Keras和TensorFlow做了一些实验,特别是LSTM 然而,由于我在这一领域是新手,所以我在做一些非常具体的查询时发现了更好的结果 具有包含以下数据的下表: round value class creacion 1 15.49 H 2018-01-27 14:03:54 2 7.42 H 2018-01-27 14:04:42 3 1.04 L

我在一个大约有一百万条记录的数据库中寻找模式。我用Keras和TensorFlow做了一些实验,特别是LSTM

然而,由于我在这一领域是新手,所以我在做一些非常具体的查询时发现了更好的结果

具有包含以下数据的下表:

round   value   class       creacion
1       15.49   H       2018-01-27 14:03:54
2       7.42    H       2018-01-27 14:04:42
3       1.04    L       2018-01-27 14:39:28
4       2.71    H       2018-01-27 14:39:36
5       1.95    L       2018-01-27 14:39:59
6       4       H       2018-01-27 14:40:17
7       4.4     H       2018-01-27 14:40:45
8       1.52    L       2018-01-27 14:41:14
9       28.69   H       2018-01-27 14:41:28
10      7.44    H       2018-01-27 14:42:25
11      1.1     L       2018-01-27 14:43:02
12      1.1     L       2018-01-27 14:43:12
13      1.41    L       2018-01-27 14:43:21
14      1.04    L       2018-01-27 14:53:10
15      1.66    L       2018-01-27 14:53:19
16      8.44    H       2018-01-27 14:53:34
17      1.55    L       2018-01-27 14:54:13
18      2.39    H       2018-01-27 14:55:29
19      2.9     H       2018-01-27 14:55:50
20      1.66    L       2018-01-27 14:56:13
21      2.7     H       2018-01-27 14:56:29
22      7.53    H       2018-01-27 14:56:51
23      2.04    H       2018-01-27 14:57:28
24      1.97    L       2018-01-27 14:57:47
25      1.35    L       2018-01-27 14:58:05
如你们所见,我将所有低于2的值分类为“L”低值,而大于H高值

所以这里的主要目标是预测下一个值

我一直在使用这个查询,它对100个值求和,将高值视为2,将低值视为1。下面的查询对最后100个结果求和,并提供一个数字作为输出,假设该数字低于中值,我们可以预测高值的可能性会增加

SELECT SUM(n)
FROM (
SELECT *, IF(value < 2, @nvalue := 1, @nvalue := 2) AS n
FROM crawler
ORDER BY round DESC
LIMIT 0, 100
) AS sub

实际上,我在寻找相同的结果,但每个记录都有一个限制,以避免大量加载时间。

获取最后100个值的简单方法是:

select c.*,
       (select sum(c2.value)
        from (select c3.*
              from c3
              where c3.creation <= c.creation
              order by c3.creation desc
              limit 100
             ) c2
       ) as sum_last100
from crawler c;

此时,我可能建议您切换到MySQL 8或其他数据库,如Postgres。让您想要的查询在一百万行上高效运行可能不值得在MySQL的旧版本中付出努力。

我删除了问题中要求推荐的部分,这将导致人们投票关闭它。再次感谢Linoff先生@@版本显示为10.1.13-MariaDB,因此,第二次查询可能有效!。。。运气不好,我没认出来。我可能会尝试直接从Python处理这些数据。@ChrisRusso。我认为在MariaDB 10.2中引入了窗口函数。
round   value   class   creacion                sum(n)
560894  3.24    hi      2018-06-22 22:58:59     162
select c.*,
       (select sum(c2.value)
        from (select c3.*
              from c3
              where c3.creation <= c.creation
              order by c3.creation desc
              limit 100
             ) c2
       ) as sum_last100
from crawler c;
select c.*,
       sum(value) over (order by creation rows between 99 preceding and current row) as sum_last100
from crawler c;