美文网首页
MySQL计算中间值

MySQL计算中间值

作者: 只是甲 | 来源:发表于2020-10-27 14:09 被阅读0次

备注:测试数据库版本为MySQL 8.0

如需要scott用户下建表及录入数据语句,可参考:
scott建表及录入数据sql脚本

一. 问题

计算一列数字值的中间值(中间值就是一组有序元素中间成员的值)。
例如查找deptno 20中工资的中间数。

如下列工资:
mysql> select sal from emp where deptno = 20 order by sal;
+---------+
| sal |
+---------+
| 800.00 |
| 1100.00 |
| 2975.00 |
| 3000.00 |
| 3000.00 |
+---------+
5 rows in set (0.00 sec)

中间数为2975

二.解决方案

使用自联接查找中间数:

select  avg(sal)
   from (
 select e.sal
   from emp e,emp d
 where e.deptno = d.deptno
   and e.deptno = 20
 group by e.sal
having sum(case when e.sal = d.sal then 1 else 0 end)
                           >= abs(sum(sign(e.sal - d.sal)))
) tmp;

测试记录:

mysql> select  avg(sal)
    ->    from (
    ->  select e.sal
    ->    from emp e,emp d
    ->  where e.deptno = d.deptno
    ->    and e.deptno = 20
    ->  group by e.sal
    -> having sum(case when e.sal = d.sal then 1 else 0 end)
    ->                            >= abs(sum(sign(e.sal - d.sal)))
    -> ) tmp;
+-------------+
| avg(sal)    |
+-------------+
| 2975.000000 |
+-------------+
1 row in set (0.01 sec)

相关文章

  • MySQL计算中间值

    备注:测试数据库版本为MySQL 8.0 如需要scott用户下建表及录入数据语句,可参考:scott建表及录入数...

  • MySQL 5.7新特性:支持为表增加计算列

    MySQL 5.7支持为表增加计算列 什么叫计算列呢,简单来说就是某一列的值是通过别的列计算得来,例如a列值为1,...

  • 【HDU 1286】找新朋友

    找新朋友(题目链接) 思路 直接暴力,TLE 使用map存储中间计算值优化,TLE 使用欧拉函数计算,AC 代码

  • tensorflow 实体Embedding变量 转 关系Emb

    1.tensorflow是静态图,先搭建计算图,再是数据流通,才能得到中间计算的值。 2.变量----->处理--...

  • 实时推荐系统-黑马头条

    TF IDF中间值的计算 总结: ![image.png]( ent/strip%7CimageView2/2/w...

  • MySQL笔记2

    MySQL笔记2 创建计算字段 1、拼接字段 拼接(concatenate):将值联结到一起(将一个值附加到另一个...

  • Find the miss term in an Arithme

    Question 在一个至少长度为3的等差数列数组找出中间缺少的值比如: Answer 一、计算差值 1、计算出等...

  • 01-04 Statistical analysis of ti

    计算全局统计值 计算滚动统计值 计算布林带

  • 【MySQL】使用集合函数查询

    MySQL提供一些查询功能,可以对获取的数据进行分析和报告。如,计算行数的总和、最大值、最小值或平均值等。这些函数...

  • 【PYTHON】二分查找算法

    二分查找: 在一段数字内,找到中间值,判断要找的值和中间值大小的比较。 如果中间值大一些,则在中间值的左侧区域继续...

网友评论

      本文标题:MySQL计算中间值

      本文链接:https://www.haomeiwen.com/subject/ybvnpktx.html