1 select 所属部门,count(所属部门) 终端总数, 2 sum(decode(在线状态,'在线',1,0)) 在线数量, 3 count(所属部门)-sum(decode(在线状态,'在线',1,0)) 不在线数量 4 from tbs 5* group by 所属部门 6 /
不知源表数据情况,可能还要加上日期限制吧,不然统计的数量可能不对。 select 所属部门,count(所属部门) 终端总数, sum(decode(在线状态,'在线',1,0)) 在线数量, sum(decode(在线状态,'不在线',1,0)) 不在线数量 from tb1 where 日期=to_date('20120212','yyyymmdd') group by 所属部门
2012-02-12 西山分局 河口派出所 不在线
2012-02-12 西山分局 江山派出所 在线
2012-02-12 呈贡分局 派出所1 不在线
2012-02-12 呈贡分局 派出所2 不在线
2012-02-12 呈贡分局 派出所3 不在线目标:
所属部门 终端总数 在线数量 不在线数量
西山分局 2 1 1
呈贡分局 3 0 3求SQL语句
select 所属部门,count(所属部门) 终端总数,
sum(decode(在线状态,'在线',1,0)) 在线数量,
sum(decode(在线状态,'不在线',1,0)) 不在线数量
from tb1
group by 所属部门
USER 为 "SCOTT"SQL> ed
已写入 file afiedt.buf 1 CREATE TABLE tbs(
2 日期 DATE,
3 所属部门 VARCHAR2(20),
4 使用单位 VARCHAR2(20),
5 在线状态 VARCHAR2(10)
6* )
SQL> /表已创建。SQL> @c:\sql.sql已创建 1 行。
已创建 1 行。
已创建 1 行。
已创建 1 行。
已创建 1 行。SQL> select * from tbs;日期 所属部门 使用单位 在线状态
-------------- -------------------- -------------------- ----------
12-2月 -12 西山分局 河口派出所 不在线
12-2月 -12 西山分局 江山派出所 在线
12-2月 -12 呈贡分局 派出所1 不在线
12-2月 -12 呈贡分局 派出所2 不在线
12-2月 -12 呈贡分局 派出所3 不在线SQL> ed
已写入 file afiedt.buf 1 select 所属部门,count(所属部门) 终端总数,
2 sum(decode(在线状态,'在线',1,0)) 在线数量,
3 sum(decode(在线状态,'不在线',1,0)) 不在线数量
4 from tbs
5* group by 所属部门
6 /所属部门 终端总数 在线数量 不在线数量
-------------------- ---------- ---------- ----------
西山分局 2 1 1
呈贡分局 3 0 3SQL>
2 sum(decode(在线状态,'在线',1,0)) 在线数量,
3 count(所属部门)-sum(decode(在线状态,'在线',1,0)) 不在线数量
4 from tbs
5* group by 所属部门
6 /
select 所属部门,count(所属部门) 终端总数,
sum(decode(在线状态,'在线',1,0)) 在线数量,
sum(decode(在线状态,'不在线',1,0)) 不在线数量
from tb1
where 日期=to_date('20120212','yyyymmdd')
group by 所属部门