求助:分组统计(100分)

  • 主题发起人 主题发起人 yesp
  • 开始时间 开始时间
Y

yesp

Unregistered / Unconfirmed
GUEST, unregistred user!
Access中,数据表 员工表: 姓名,科室,职称
现要求统计各个科室中各个职称的人数占其所在科室的总人数百分比?
SELECT 科室,职称,count(*) as 人数,各职称人数占科室总人数百分比
FROM 员工表
GROUP BY 科室,职称
这个SQL查询语句该怎么写?
 
SELECT 科室,职称,count(*) as 人数,(职称/count(*))*100 职称百分比 FROM 员工表 GROUP BY 科室,职称
 
问题解决了,有截图,自己看吧:
http://delphibbs.com/keylife/iblog_show.asp?xid=24315
 
100分拿来吧
 
select groud, cast (cast ((sum(case when pos='A' then 1.00 else 0.00 end)*100 /count(1)) as decimal(10,2)) as char(6))+'%' A,
cast (cast ((sum(case when pos='B' then 1.00 else 0.00 end)*100 /count(1)) as decimal(10,2)) as char(6))+'%' B,
cast (cast ((sum(case when pos='C' then 1.00 else 0.00 end)*100 /count(1)) as decimal(10,2)) as char(6))+'%' C
from 員工表
group by 科室
 
Johnny_du:职称是个字符型字段
deardai:职称的名称、职称的种类数量都是未知的,不知道用case是否可以,我还没有试过。
icc:你的方法倒是一个可行的方法,如果有能用SQL语句生成的就更好了,因为
WHERE条件是会变化的。
等一天结贴,感谢大家!
 
呵呵:)写错了,不好意思
SELECT 科室,职称,count(*) as 人数,(count(职称)/count(*))*100
 
按LS的说法:
SELECT 科室,职称,count(*) as 人数,(count(职称)/count(*))*100 as 百分比 from 员工表 group by 科室,职称
你运行一下试试,就能知道这种想法不可行了,肯定是 100%,因为Count(职称)和Cunt(*)一定是等值的,如果能 Count(职称=??)/Count(*)也许可行,不过我做不到
 
非常感谢大家的热心帮助!
 
后退
顶部