select avg(fieldname) from 
(select top 30 PERCENT * from tablename order by ...) as a

解决方案 »

  1.   

    to  Yang_(扬帆破浪)
    这句在sql anywhere里通不过,在sql anywhere中该如何写?
    请指教,谢谢!
      

  2.   

    yeekai (折了翅膀的鹰) :你解释得是不是有点不对呀?
    中位数应该是大于这个数及小于这个数的个体数目相等的数值。
    高位数也应该是有30%的个体小于这个数,70%的个体大于这个数。而不是前30%条记录的清单。
    低位数类似。结果应该都是一个数值,这个数值可能不在记录中,需要计算的。
    你看下统计书,按书上的算法算吧,没有直接可用的函数或语法的。更何况你用的是sql anywhere。
      

  3.   

    icevi(按钮工厂) :这个我也不太清楚,也是别人这么告诉我的
    我去看看书吧,谢谢你的指正
      

  4.   

    数据库中有前多少条的概念吗?数据库中记录是没有次序的。
    对于SQL语言,除非使用sort子句,并不保证每次取来的结果的次序。如果非要有次序有两种方法:
    1、使用sort子句。
    2、用一个列记录次序。在SQL Server中引入了TOP子句。而在其它数据库中并没有。一般使用存储过程来实现你的要求。