求一个合格率的SQL在线等

limingfengfeng 2009-07-10 10:00:20
需求是数据库里面有个字段是A01, 值为0 (未经历) 1(合格) 2(不合格) 时间字段为“AIRDATE”
如果值为0 不参与评比。。我需要求某段时间内 A01字段得合格率。 在线等大侠。。。。。

...全文
164 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Richard345265669 2009-07-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mantisXF 的回复:]
SQL codeCOUNT(DECODE(A01,1,1,0))/COUNT(1)

引用楼主 limingfengfeng 的帖子:
需求是数据库里面有个字段是A01, 值为0 (未经历) 1(合格) 2(不合格) 时间字段为“AIRDATE”
如果值为0 不参与评比。。我需要求某段时间内 A01字段得合格率。 在线等大侠。。。。。
[/Quote]
正解
qzn2008 2009-07-10
  • 打赏
  • 举报
回复
select sum(decode(a,1,1,0))/COUNT(1) from aaa
这样可以
qzn2008 2009-07-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 cosio 的回复:]
select COUNT(DECODE(A01,1,1,0))/COUNT(1)*100 合格率 FROM 表 where a01 !=0
[/Quote]
这个执行后 合格率是 100% 啊

数据是
0
0
1
1
2
2 合格应该是50%
qzn2008 2009-07-10
  • 打赏
  • 举报
回复
需求是数据库里面有个字段是A01, 值为0 (未经历) 1(合格) 2(不合格) 时间字段为“AIRDATE”
如果值为0 不参与评比。。我需要求某段时间内 A01字段得合格率。 在线等大侠。。。。。


例如:
A01 AIRDATE
0 2009.1
1 2009.2
1 2009.3
2 2009.4
2 2009.5
0 2009.6 有这样的数据。 肉眼观察后得出结论在2009年本年 合格率为 2除以6 33.333333333333333%

如果数据很多不建议用肉眼观察,可以用sql
aaa 是你表的名字 select count(1) tt1 from aaa 查询总数 select count(1) tt2 from aaa where a=1 查询合格的数
select ab.tt2/ac.tt1*100% from (select count(1) tt1 from aaa where AIRDATE 时间条件 ) ab,
(select count(1) tt2 from aaa where a=1 and AIRDATE 时间条件) ac

的出的就是率!!!!
cosio 2009-07-10
  • 打赏
  • 举报
回复
select COUNT(DECODE(A01,1,1,0))/COUNT(1)*100 合格率 FROM 表 where a01 !=0
limingfengfeng 2009-07-10
  • 打赏
  • 举报
回复
5555 麻烦大侠写详细点好不?小弟是小白
limingfengfeng 2009-07-10
  • 打赏
  • 举报
回复
5555 麻烦大侠写详细点好不?小弟是小白
mantisXF 2009-07-10
  • 打赏
  • 举报
回复
COUNT(DECODE(A01,1,1,0))/COUNT(1)
[Quote=引用楼主 limingfengfeng 的帖子:]
需求是数据库里面有个字段是A01, 值为0 (未经历) 1(合格) 2(不合格) 时间字段为“AIRDATE”
如果值为0 不参与评比。。我需要求某段时间内 A01字段得合格率。 在线等大侠。。。。。
[/Quote]
tanwy 2009-07-10
  • 打赏
  • 举报
回复
select sum((select count(1) from aaa where a101=1)/(select count(1) from aaa where a101<>0)) from dual

这个绝对可以
ldw2545398 2009-07-10
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 zhoube123 的回复:]
select SUM(DECODE(A01,1,1,0))/COUNT(1)*100 合格率 FROM 表 where a01 !=0
[/Quote]
UP
zhoube123 2009-07-10
  • 打赏
  • 举报
回复
同意九楼的
zhoube123 2009-07-10
  • 打赏
  • 举报
回复
select SUM(DECODE(A01,1,1,0))/COUNT(1)*100 合格率 FROM 表 where a01 !=0
cnrefresh 2009-07-10
  • 打赏
  • 举报
回复
select sum(decode(a,1,1,0))/COUNT(1) from aaa where a01 !=0

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧