zoukankan      html  css  js  c++  java
  • 求中位数

    当某一数的正序和逆序累计均大于整个序列的数字个数的一半即为中位数

    CREATE TABLE class_grade (
    grade varchar(32) NOT NULL,
    number int NOT NULL
    );
    
    INSERT INTO class_grade VALUES
    ('A',1),
    ('C',1),
    ('D',1),
    ('B',1),
    ('E',1);
    
    /*
    select grade
    from
    (
        select grade
             , number
             , (
                   select sum(number) + 1
                   from class_grade x
                   where x.grade < class_grade.grade
               ) as rowid_start
             , (
                   select sum(number) from class_grade x where x.grade <= class_grade.grade
               ) as rowid_end
        from class_grade
    ) a
    , (
          select sum(number)*1.00 / 2     as start_index
               , sum(number)*1.00 / 2 + 1 as end_index
          from class_grade
      ) b
    where a.rowid_start between b.start_index and b.end_index
    	  or
    	  a.rowid_end between b.start_index and b.end_index
    	  or
    	  b.start_index between a.rowid_start  and a.rowid_end 
    	  or
    	  b.end_index between a.rowid_start  and a.rowid_end 
    order by grade;
    */
    
    select y.grade from (
    select 
    grade
    ,sum(number) over(order by grade) as sum_asc
    ,sum(number) over(order by grade desc ) as  sum_desc
    from 
    dbo.class_grade) y
    ,(select sum(number)*1.00/2 as num from dbo.class_grade) x
    where y.sum_asc>=x.num and y.sum_desc>=x.num
    order by grade
    
    drop table class_grade;
    

      

  • 相关阅读:
    hexo常用命令笔记
    给hexo添加评论系统
    npm 使用代理
    几种网页重定向(自动跳转)的方法
    使用hexo搭建github博客
    在Pythonanywhere上部署Django
    Apache .htaccess语法之RewriteRule
    为Github项目创建文档
    Windows下WordPress搭建博客过程
    Windows下Discuz搭建论坛过程
  • 原文地址:https://www.cnblogs.com/coolyylu/p/14961872.html
Copyright © 2011-2022 走看看