广

MSSQL

  • MYSQL
  • MSSQL
  • Redis
  • MongoDB
  • oracle数据库
  • 数据管理

    SQLServer2005 中的几个统计技巧

    2018-04-25 21:47:02 次阅读 稿源:互联网
    零七网广告
    全网推广平台,软文发布
     
    在SQLServer中我们可以用over子句中来代替子查询实现来提高效率,over子句除了排名函数之外也可以和聚合函数配合。实现代码如下:
    代码如下:

    use tempdb
    go
    if (object_id ('tb' ) is not null )
    drop table tb
    go
    create table tb (name varchar (10 ), val int )
    go
    insert into tb
    select 'aa' , 10
    union all select 'aa' , 20
    union all select 'aa' , 20
    union all select 'aa' , 30
    union all select 'bb' , 55
    union all select 'bb' , 45
    union all select 'bb' , 0

    select *
    , 排名 = rank ()over (partition by name order by val )
    , 占比 = cast (val * 1.0 / sum (val )over (partition by name ) as decimal (2 , 2 ))
    , 距最大 = val - max (val )over (partition by name )
    , 距最小 = val - min (val )over (partition by name )
    , 距平均 = val - avg (val )over (partition by name )
    from tb

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七网广告
    零七网广告
    零七网广告
    零七网广告