• 大数据第44天—Mysql练习题15-给定数字的频率查询中位数-杨大伟


    需求:编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息: FirstName, LastName, City, State

    展示效果:

    median
    0.0000
    1 Create table If Not Exists Numbers (Number int, Frequency int);
    2 
    3 insert into Numbers (Number, Frequency) values (0, 7);
    4 insert into Numbers (Number, Frequency) values (1, 1);
    5 insert into Numbers (Number, Frequency) values (2, 3);
    6 insert into Numbers (Number, Frequency) values (3, 1);

    最终SQL:

     1 select
     2       avg(t.number) as median
     3 from
     4       (select
     5              n1.number,
     6              n1.frequency,
     7              (select 
     8                    sum(frequency) 
     9               from 
    10                    numbers n2
    11               where 
    12                    n2.number<=n1.number
    13              ) as asc_frequency,
    14              (select
    15                    sum(frequency)
    16               from 
    17                    numbers n3 
    18               where 
    19                    n3.number>=n1.number
    20              ) as desc_frequency
    21       from 
    22              numbers n1
    23       ) t
    24 where 
    25       t.asc_frequency>= (select sum(frequency) from numbers)/2
    26       and t.desc_frequency>= (select sum(frequency) from numbers)/2;
  • 相关阅读:
    jQuery扩展函数设置所有对象只读
    Jquery一些实用函数
    原码,反码,补码
    数据库查询练习
    已知二叉树的先序遍历和中序遍历画出该二叉树
    linux 下 Google配置SwitchyOmega
    字母和数字转换
    c++产生验证码字符串
    C++产生随机数
    快速排序
  • 原文地址:https://www.cnblogs.com/shui68home/p/13556315.html
Copyright © 2020-2023  润新知