2015年4月9日 天气冷
Name Type Nullable Default Comments
------------ ------------- -------- ------- ----------
ID VARCHAR2(50) 消息id
SERVICE_ID VARCHAR2(20) Y 服务ID
REQ_TIME DATE Y 要求时间
INVOKE_TIME DATE Y 调用时间
STATUS CHAR(1) Y '0' 0:失败,1:成功
RESP_TIME DATE Y 响应时间
USER_NAME VARCHAR2(20) Y 用户名
SERVICE_TIME DATE Y 调用服务结束时间
DESCN VARCHAR2(256) Y 描写
--方式1
select req_time,
sum(decode(status, '0', 1, 0)) fail,
sum(decode(status, '1', 1, 0)) success
from gw_log
group by req_time;
履行结果以下:
固然,用了decode()函数,那也能够用case函数了。
--方式2
select distinct a.req_time, a.fail, b.success
from (select req_time,count(*) fail
from gw_log
where status = '0'
group by req_time) a
right join
(select req_time, count(*) success
from gw_log
where status = '1'
group by req_time) b on a.req_time = b.req_time
【参考:select * from (select * from emp) e cross join (select * from book) b】
履行结果以下:
count 无记录未返回0, 由于有 group by 子句的.
如果是不分组(即没有 Group By) 那是1定会返回1个 0 的.
要让有 分组 的count返回 0 , 则需要使用外连接
--方式3
select *
from (select a.req_time, count(*) success
from gw_log a
where a.status = '1'
group by req_time
union
select b.req_time, count(*) fail
from gw_log b
where b.status = '0'
group by b.req_time) g
履行结果以下: