精华内容
下载资源
问答
  • mysql中如何计算平均值
    千次阅读
    2021-01-27 22:26:09

    要计算MySQL中一行的平均值,请使用以下语法SELECT (yourTableName.yourColumnName1+yourTableName.yourColumnName2+yourTableName.yourColumnName3+,..........N)/numberOfColumns AS anyAliasName FROM yourTableName;

    为了理解上述语法,让我们创建一个表。创建表的查询如下create table calculateAverageDemo

    -> (

    -> x int,

    -> y int,

    -> z int

    -> );

    使用insert命令在表中插入一些记录。

    查询如下insert into calculateAverageDemo values(10,20,30);

    insert into calculateAverageDemo values(40,50,70);

    insert into calculateAverageDemo values(80,90,220);

    使用select语句显示表中的所有记录。

    查询如下select *from calculateAverageDemo;

    以下是输出+------+------+------+

    | x    | y    | z    |

    +------+------+------+

    | 10   | 20   | 30   |

    | 40   | 50   | 70   |

    | 80   | 90   | 220  |

    +------+------+------+

    3 rows in set (0.00 sec)

    这是查询以计算一行中的平均值select (calculateAverageDemo.x+calculateAverageDemo.y+calculateAverageDemo.z)/3

    -> AS Average from calculateAverageDemo;

    以下是输出+----------+

    | Average  |

    +----------+

    | 20.0000  |

    | 53.3333  |

    | 130.0000 |

    +----------+

    3 rows in set (0.06 sec)

    更多相关内容
  • 表结构: CREATE TABLE `instance` ( `id` int(11) unsigned NOT NULL AUTO_...统计每半小时平均值,实现可以如下: select `timestamp`-`timestamp`% (5*60) , avg(cup) from `instance` group by `timestamp`
  • 主要介绍了使用MySQL中的AVG函数求平均值的教程,是Python入门学习的基础知识,需要的朋友可以参考下
  • 以下MySql更新状态似乎需要花费过多的时间来执行所提供的记录集(~5000条记录).下面的更新语句平均需要12秒才能执行.我目前计划对5个不同时期和大约500种不同的股票代码进行此计算.这转换为12秒* 5计算* 500符号= 30,...

    以下MySql更新状态似乎需要花费过多的时间来执行所提供的记录集(~5000条记录).下面的更新语句平均需要12秒才能执行.我目前计划对5个不同时期和大约500种不同的股票代码进行此计算.这转换为12秒* 5计算* 500符号= 30,000秒或8..33小时.

    更新声明:

    UPDATE tblStockDataMovingAverages_AAPL JOIN

    (SELECT t1.Sequence,

    (

    SELECT AVG(t2.Close)

    FROM tblStockDataMovingAverages_AAPL AS t2

    WHERE (t1.Sequence - t2.Sequence)BETWEEN 0 AND 7

    )AS "8SMA"

    FROM tblStockDataMovingAverages_AAPL AS t1

    ORDER BY t1.Sequence) AS ma_query

    ON tblStockDataMovingAverages_AAPL.Sequence = ma_query.Sequence

    SET tblStockDataMovingAverages_AAPL.8MA_Price = ma_query.8SMA

    表设计:

    CREATE TABLE `tblStockDataMovingAverages_AAPL` (

    `Symbol` char(6) NOT NULL DEFAULT '',

    `TradeDate` date NOT NULL DEFAULT '0000-00-00',

    `Sequence` int(11) DEFAULT NULL,

    `Close` decimal(18,5) DEFAULT NULL,

    `200MA_Price` decimal(18,5) DEFAULT NULL,

    `100MA_Price` decimal(18,5) DEFAULT NULL,

    `50MA_Price` decimal(18,5) DEFAULT NULL,

    `20MA_Price` decimal(18,5) DEFAULT NULL,

    `8MA_Price` decimal(18,5) DEFAULT NULL,

    `50_200_Cross` int(5) DEFAULT NULL,

    PRIMARY KEY (`Symbol`,`Sequence`),

    KEY `idxSequnce` (`Sequence`)

    ) ENGINE=InnoDB DEFAULT CHARSET=latin1$$

    任何有关加强这一过程的帮助都将不胜感激.

    选择说明的输出:

    id select_type table type possible_keys key key_len ref rows Extra

    1 PRIMARY t1 index NULL idxSymbol_Sequnce 11 NULL 5205 Using index; Using filesort

    2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 5271 Using where

    解决方法:

    这应该更好一点:

    update tblStockDataMovingAverages_AAPL

    join (

    select t1.sequence as sequence, avg(t2.close) as av

    from tblStockDataMovingAverages_AAPL t1

    join tblStockDataMovingAverages_AAPL t2

    on t2.sequence BETWEEN t1.sequence-7 AND t1.sequence

    group by t1.sequence

    ) t1 on tblStockDataMovingAverages_AAPL.sequence = t1.sequence

    set 8MA_Price = t1.av

    关于我的BETWEEN语句:field1 OPERATOR表达式(field2)比ON条件中的表达式(field1,field2)OPERATOR表达式更容易优化.我认为这适用于BETWEEN.

    看起来您的查询中的ORDER BY是不必要的,删除它可能会使您的查询速度提高一吨.

    如果任何股票代码出现在同一个表中,请将所有这些符号粘贴到单个更新查询中(虽然不同的时间段不起作用),这可能比为每个查询运行它更快.

    如前所述,向Close添加索引可能会有所帮助.

    标签:mysql,performance,moving-average

    来源: https://codeday.me/bug/20190704/1372688.html

    展开全文
  • 为此,您可以使用AVG()。以下是语法-selectavg(yourColumnName1)asanyAliasName1,avg(yourColumnName2)asanyAliasName2,avg(yourColumnName3)asanyAliasName3,.....让我们创建一个表-mysql>createtabledemo3...

    为此,您可以使用AVG()。以下是语法-select avg(yourColumnName1) as anyAliasName1,

    avg(yourColumnName2) as anyAliasName2,

    avg(yourColumnName3) as anyAliasName3,

    .

    .

    N

    from yourTableName;

    让我们创建一个表-mysql> create table demo31

    −> (

    −> value1 int,

    −> value2 int,

    −> value3 int

    −> );

    借助insert命令将一些记录插入表中-mysql> insert into demo31 values(34,55,67);

    mysql> insert into demo31 values(50,60,70);

    mysql> insert into demo31 values(100,200,300);

    mysql> insert into demo31 values(10,300,200);

    使用select语句显示表中的记录-mysql> select *from demo31;

    这将产生以下输出-+--------+--------+--------+

    | value1 | value2 | value3 |

    +--------+--------+--------+

    |     34 |     55 |     67 |

    |     50 |     60 |     70 |

    |    100 |    200 |    300 |

    |     10 |    300 |    200 |

    +--------+--------+--------+

    4 rows in set (0.00 sec)

    以下是查询以计算跨数据库行的平均值-mysql> select avg(value1) as Value1_AVG,

    −> avg(value2) as Value2_AVG,

    −> avg(value3) as Value3_AVG

    −> from demo31;

    这将产生以下输出-+------------+------------+------------+

    | Value1_AVG | Value2_AVG | Value3_AVG |

    +------------+------------+------------+

    | 48.5000    | 153.7500   | 159.2500   |

    +------------+------------+------------+

    1 row in set (0.00 sec)

    展开全文
  • 我想从MySQL专栏计算12个月的移动平均线.数据代表时间序列功率测量,它是一个较大的数据集(几年内每10分钟一次).一个高性能的查询会很好,但速度是我以后可以解决的问题.DTE Active2012-1-3 00:10 5002012-1-3 00:20 ...

    我想从MySQL专栏计算12个月的移动平均线.数据代表时间序列功率测量,它是一个较大的数据集(几年内每10分钟一次).一个高性能的查询会很好,但速度是我以后可以解决的问题.

    DTE Active

    2012-1-3 00:10 500

    2012-1-3 00:20 520

    ... etc

    以下查询为我提供了每月的活动总数:

    SELECT YEAR(DTE) AS year, MONTH(DTE) AS month, SUM(Active)/6 as total FROM saturne s GROUP BY YEAR(DTE), MONTH(DTE)

    以下查询给出了给定月份和年份的移动平均值 – 例如2011年10月

    SELECT SUM(Active)/6 AS average FROM saturne

    WHERE (YEAR(DTE) = 2011 AND MONTH(DTE) <= 10) OR (YEAR(DTE) = 2010 AND MONTH(DTE) > 10)

    但是,我想生成一个查询,该查询返回下一列中的每月总计和12个月移动平均值.

    year month total average

    2012 2 701474 9258089

    2012 1 877535 9386664

    ... etc

    (因子6是因为数据表示每10分钟记录一次的瞬时功率,将总数除以6给出总能量)

    解决方法:

    尝试:

    SELECT YEAR(GDTE) AS year,

    MONTH(GDTE) AS month,

    SUM(case when i=0 then Active end)/6 as total,

    SUM(Active)/(MAX(i+1)*6) as avg

    FROM

    (select s.*, DATE_ADD(DTE, INTERVAL m.i MONTH) GDTE, m.i

    FROM saturne s

    cross join (select 0 i union select 1 union select 2 union select 3 union

    select 4 union select 5 union select 6 union select 7 union

    select 8 union select 9 union select 10 union select 11) m

    ) sq

    WHERE GDTE <= curdate()

    GROUP BY YEAR(GDTE), MONTH(GDTE)

    标签:sql,mysql

    来源: https://codeday.me/bug/20190902/1790254.html

    展开全文
  • 基本上它看起来像这样:Sensor | Timestamp | Value现在我想从这些数据制作一个图表,我想制作几个不同的图表.假设我想要一个最后一天,一个是上周,一个是上个月.每个图的分辨率将不同,因此对于日图,分辨率将为1分钟...
  • 如何计算mysql数据表某一列的平均值

    千次阅读 2021-01-19 04:36:43
    2在data数据内外插入5条数据,用于下面计较数据表age列的平均值。3新建一个php文件,定名为test.php,在文件内利用header()方式设置文件执行编码为utf8。4在test.php文件内,利用new mysqli经由过程数据库账号、暗码...
  • 为此,您可以round()与一起使用avg()。让我们首先创建一个表-mysql>...使用插入命令在表插入一些记录-mysql>insertintoDemoTablevalues(98);mysql>insertintoDemoTablevalues(97);mysql>insertin...
  • 让我们首先创建一个表-mysql>...使用插入命令在表插入一些记录-mysql>insertintoDemoTablevalues(56);mysql>insertintoDemoTablevalues(78);mysql>insertintoDemoTablevalues(89)...
  • Mysql分组求平均值

    千次阅读 2021-03-08 17:39:47
    -------±-----------+ | groupId | avg(value) | ±--------±-----------+ | 1 | 1.5000 | | 2 | 3.0000 | | 3 | 2.0000 | | 5 | 6.0000 | ±--------±-----------+ 这样就求出了每个组前2个最大的value的平均值
  • 我正在竞赛网站上工作,有两种类型的用户,普通...获胜者实际上将通过平均每组的平均值来确定.我希望做的是最终得到一个表格,显示特定比赛的每个条目,标题,然后显示3个值,该条目的avg_normal,该条目的avg_judge,然后...
  • 我正在尝试从一个表中计算平均值,并将其放入一个新的表中,该表按MySQL中的组名分组.在第一个表格(称为答案)中,我有许多小组的调查答案.答案是数值(INT,1-7),问题分为问题组(文化,表现等).所有答案都有一个响应者姓名...
  • mysql如何求时间段平均值

    千次阅读 2021-01-19 07:12:32
    mysql求时间段平均值的方法:首先在存储过程,拼接sql语句;然后据起始时间和结束时间,while循环每次加一段时间;最后进行时间段平均即可。本教程操作环境:windows7系统、mysql8.0.22版,Dell G3电脑。更多相关...
  • MySQL MAX函数:查询指定列的最大值MySQL MAX() 函数是用来返回指定列的最大。为了方便理解,首先创建一个学生成绩表 tb_students_score,学生成绩表的数据内容如下所示。mysql> use test_db;Database ...
  • )mysql:一行的多个列的平均值,忽略空值对于许多记录,一个或多个这些列的值为空,因为外部数据库没有数据。它们都覆盖我的数据库的不同子集。我希望列t是它们的加权平均值(每个a..f都有我分配...
  • SQL的聚合函数(SUM,AVG,COUNT等)始终自动排除NULL.所以SUM(col)/ COUNT(col)= AVG(col) – 这很棒且一致.COUNT(*)的特殊情况计算每一行.如果组成一个带有NULL的表达式:A或B为A的B,则无论另一列为NULL,A B都将为...
  • mysql平均值

    万次阅读 2018-07-26 17:37:02
    表结构:  ...#求instanceId对应的avgCpuUseRatio的平均值 select instanceId, AVG(avgCpuUseRatio) from monitor where cloud="Aliyun" and type="ecs" and date>='2018-07-01' and date; 参考: ...
  • 学习使用MySQL平均值函数AVG

    千次阅读 2022-04-01 09:56:07
    MySQL AVG() 函数通过计算返回的行数和每一行数据的和,求得指定列数据的平均值。 这里需要用到以下在介绍 MAX() 函数时创建的表 tb_students_score 。 实例】在 tb_students_score 表,查询所有学生成绩的平均值...
  • MySQL多表求平均值

    2020-12-17 18:55:06
    建表 CREATE TABLE Account(id INT(11),name VARCHAR(255),class VARCHAR(255)) CREATE TABLE Exam(id INT,course...求平均值 Select a.class,e.course,e.score from account a,Exam e where a.id=e.aid SELECT a.class
  • 這很有用:http://tech-blog.borychowski.com/index.php/2009/02/mysql/average-value-in-a-row/From the page:從頁面:When we do:當我們這樣做時:SELECT *, (V.rank_0 + V.rank_1 + V.rank_2) / 3AS row_avg FROM ...
  • MySql 如何返回 时间差的平均值

    千次阅读 2019-05-25 20:03:05
    MySql 如何返回 时间差的平均值 文章目录MySql 如何返回 时间差的平均值返回时间差平均值查看原数据 返回时间差平均值 设有一表内有字段submitTime,editTime,需要返回所有数据的时间差的平均值 时间为空则不计,...
  • 拼接字段-Concat()函数将连接在一起构成单个。注意:大多数DBMS使用+或者||来实现拼接,mysql则使用Concat()函数来实现。去空格函数-Trim函数Trim去掉串左右两边的空格,RTrim去掉串右边的空格,LTrim去掉左边的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 105,073
精华内容 42,029
关键字:

mysql中如何计算平均值

mysql 订阅