直入正题: 表mail_in :
其中mail_num列有重复,代表邮件编号;org_code 也有重复,代表投递机构;dlv_sts_code 也有重复,代表投递状态。
业务简介:投递员投递一次邮件,就会在该表中产生一条记录投递邮件号,投递员所属机构,投递状态的信息。投递状态可能为H也可能为I。
要求:用一个查询语句 查出每个机构投递邮件总数和投递状态为I的数量。(一个邮件编号代表一个邮件)。
在线等
其中mail_num列有重复,代表邮件编号;org_code 也有重复,代表投递机构;dlv_sts_code 也有重复,代表投递状态。
业务简介:投递员投递一次邮件,就会在该表中产生一条记录投递邮件号,投递员所属机构,投递状态的信息。投递状态可能为H也可能为I。
要求:用一个查询语句 查出每个机构投递邮件总数和投递状态为I的数量。(一个邮件编号代表一个邮件)。
在线等
解决方案 »
- ORACLE 有没有类似于SQL 的还原功能? 急
- 各位大侠请帮忙~急!!!关于日期输出显示的问题
- 新手恳请各位大狭帮忙建表_________creat!
- !!oracle9i,MS SQL SERVER视频录像电子资料
- 盘符丢失后连接不到数据库了—应该是个难题
- 请教一个关于三个表的SQL更新语句怎么写
- 程序执行慢,经检查程序始终在查询某个表中的数据,该表数据量很大,请分析原因,以及解决办法,写出分析流程
- 急急急:ORACLE73如何在WIN2000下正确安装,高分相送,不够可以再给。
- oracle 存储过程中使用execute immediate 创建 临时表
- plsql创建表,注释显示问号;查询时,中文可以正常显示
- 关于Log4net无法利用Oracle.DataAccess写日志到数据库的问题。
- 求oracle中国用户组论坛邀请码
ORG_CODE,NUMI+NUMH NUMALL,NUMI
FROM
(
select
org_code,sum(decode(dlv_sts_code,'I',1,0)NUMI,sum(decode(dlv_sts_code,'H',1,0)NUMH
from
(
select distinct mail_num,org_code,dlv_sts_code)ta
GROUP BY ta.org_code,ta.dlv_sts_code
)
with t1 as
(
select '02046' c1,'26636200' c2,'H' c3 from dual
union all
select '02046' c1,'26636200' c2,'H' c3 from dual
union all
select '02046' c1,'26636200' c2,'H' c3 from dual
union all
select '02046' c1,'26636200' c2,'H' c3 from dual
union all
select '02049' c1,'26636200' c2,'I' c3 from dual
union all
select '02147' c1,'26636400' c2,'I' c3 from dual
union all
select '02160' c1,'26636101' c2,'I' c3 from dual
union all
select '02160' c1,'26636101' c2,'H' c3 from dual
union all
select '02245' c1,'26636400' c2,'I' c3 from dual
union all
select '02315' c1,'26636200' c2,'I' c3 from dual
)select c1 机构,count(c2) 邮件总数,sum(decode(c3,'I',1,0)) 状态为I的数量
from t1
group by c1
order by c1 机构 邮件总数 状态为I的数量
---------------------------------
1 02046 4 0
2 02049 1 1
3 02147 1 1
4 02160 2 1
5 02245 1 1
6 02315 1 1
WITH t AS(
SELECT '02046'mail_num,'26636200'org_code,'H'dlv_sts_code FROM dual
UNION ALL
SELECT '02046','26636200','H' FROM dual
UNION ALL
SELECT '02046','26636200','I' FROM dual
UNION ALL
SELECT '02047','26636201','I' FROM dual
UNION ALL
SELECT '02047','26636201','I' FROM dual
UNION ALL
SELECT '02047','26636202','I' FROM dual
)
SELECT DISTINCT
org_code,
Count(*) over (PARTITION BY org_code ),
Count(Decode(dlv_sts_code,'I',1,NULL)) over (PARTITION BY org_code )
FROM t