数据表中(为阐述方便,现用中文名字段代替):
表:APP
字段:单位 
   
数据:浅海公司
      ...
      ...现在我要求APP表中总记录数和浅海公司的总记录数与总记录数的比例,也就是:总记录数   浅海公司所占比例
123条      50%不知道我说明白了没有
谢谢大家

解决方案 »

  1.   


    Selec [总记录数]=sum(*),
          [浅海公司所占比例]=
           ltrim(sum(Case when 单位='浅海公司' then 1 else 0 end)*100.0/sum(*))+'%'
    from APP
      

  2.   

    SELECT
        B/A
    FROM
    (SELECT A=COUNT(1) FROM APP) X,(SELECT B=COUNT(1) FROM APP WHERE 单位='浅海公司') Y
      

  3.   

    select sum_id,(count(*)/sum_id)*100 +'%' per
    from app,(select count(*) sum_id from app) t
    group by [单位]
      

  4.   

    不好意思,忘了说明,我用的是ORACLE数据库
      

  5.   

    SELECT
    CAST(B*1000/A as Nvarchar) +'%'
    FROM
    (SELECT A=COUNT(1) FROM APP) X,(SELECT B=COUNT(1) FROM APP WHERE 单位='浅海公司') Y
      

  6.   

    TO:wwh999(印钞机V2.0...开发中....) 用你的方法:FROM keyword not found where expectedTO:WangZWang(先来),用你的方法,ltrim这个函数不认啊TO:LPQ8306586() :not a GROUP BY expression我的是ORACLE数据库啊
      

  7.   

    SQL>  select * from APP;COMPANY  VALUE
    -------- -----
    浅海公司 aaa
    浅海公司 ccc
    浅海公司 ddd
    浅海公司 e1
    浅海公司 gg
    SB公司   aaa
    其他公司 aaa
    其他公司 bbb8 rows selectedSQL> 
    SQL> select count(*) all_count,
      2         round(sum(case when company = '浅海公司' then 1 else 0 end)/count(*),3)*100||'%' percent_all_count
      3    from APP; ALL_COUNT PERCENT_ALL_COUNT
    ---------- -----------------------------------------
             8 62.5%SQL>
      

  8.   

    wo de 我的一个例子,参考一下
    select count(*), to_char(round((RATIO_TO_REPORT(number) OVER () * 100), 2)) || '%' as result
    from   app where 单位= '浅海公司'
      

  9.   

    多谢mantisXF(枫の叶),也谢谢大家,但是有一个问题:count(*) all_count这句能加上条件吗?比如查找sigh==1的单位的所有记录,也就是说:1,得到APP表中sigh=1的总记录数
    2,得到sigh=1的浅海公司记录数与上面sigh=1的总记录数的比例多谢多谢!
      

  10.   

    加个 where sigh = 1 这个条件就可以了