zoukankan      html  css  js  c++  java
  • SQL取中位数

    工作需要取中位数,在网上找了下有两种代码实现,其中有一种验证有点问题,使用了另一种,今天又查了一下,发现用div这种方式实现的,具体如下(注:引用自https://blog.csdn.net/meaijojo/article/details/8101867)  但是发现这个好像也有点问题这个div的写法应该是用在MySQL的。。。。。下次更新找到的可用的那个

    查询div的时候发现  http://www.cnblogs.com/moss_tan_jun/archive/2010/08/23/1806861.html    这个里又详细介绍T-SQL相关函数。

    表还是total_sales添加一项

    表:

    SQL语句:

    SELECT * from
    (
    SELECT a1.Name, a1.Sales, COUNT(a2.sales) Sales_Rank
    FROM Total_Sales a1, Total_Sales a2
    WHERE a1.Sales < a2.Sales or (a1.Sales=a2.Sales and a1.Name = a2.Name)
    GROUP BY a1.Name, a1.Sales
    ORDER BY a1.Sales DESC, a1.Name DESC
    ) as tab WHERE tab.sales_rank=(select (count(*)+1) div 2 from total_sales);

    可以查找到中间的项,count(*)+1,这个1必须要添加,总项数假如为奇数7,则count(*)+1 / 2 = 4,假如是6则为3,都是满足的,如果不+1的话,对奇数项则不满足,如7,count(*) /2 = 3,而我们要查找的则是位于4的位置

    结果:

  • 相关阅读:
    【建站经验】 一个成熟的大型网站系统架构演化之路
    Puppet 安装配置
    SHELL二十篇(读书笔记)
    LINUX常见小问题汇总
    shell eval命令使用
    javaweb三大框架SSH
    Java Web(八) MVC和三层架构
    在CMD中操作mysql数据库出现中文乱码解决方案
    编码与解码
    JSONP
  • 原文地址:https://www.cnblogs.com/zerotone/p/9226964.html
Copyright © 2011-2022 走看看