情况如下我建立一个分页的查询,涉及到两张表(A,B)。--这部分已经实现
然后我希望把A表中username统计出其在C表中每天的记录。于是我在那个原本的分页查询中联合上了C表,结果发现效率非常低。请问这个情况一般怎么处理比较好?用临时表?
然后我希望把A表中username统计出其在C表中每天的记录。于是我在那个原本的分页查询中联合上了C表,结果发现效率非常低。请问这个情况一般怎么处理比较好?用临时表?
调试欢乐多
无数据
select tab2.*,b.字段 from (
select rownum RN ,tab1
.* from (
select * from A where 条件
order by 条件
) tab1
) tab2
where 条件 and
RN between startnum and endnum
这个是查询A,B两表分页的东西,大致是这样的,部分地方有简略。这块执行没什么问题。
现在我有一个C表
我需要统计出C表今天的数量(A表中的一个字段和C表关联)
具体统计如下count
(
case
when to_char(c.CALLAGENTSTARTTIME,'yyyy-mm-dd')=to_char(sysdate,'yyyy-mm-dd')
then (case when C.AGENTTYPE='呼出' then c.CALLAGENTSTARTTIME end)
end
) AS F_AGENTTODAYCALLCOUNT, //统计今天呼出
count
(
case
when to_char(C.CALLAGENTSTARTTIME,'yyyy-mm-dd')=to_char(sysdate,'yyyy-mm-dd')
then (case when C.AGENTTYPE='呼入' then c.CALLAGENTSTARTTIME end)
end
) AS F_AGENTTOADYANSWERCOUNT, //统计呼入count
(
case
when to_char(C.CALLAGENTSTARTTIME,'yyyy-mm-dd')=to_char(sysdate,'yyyy-mm-dd') and c.AGENTTYPE='呼出' and C.AGENTTALKSECONDS>6
then CALLAGENTSTARTTIME
end
) as realCalls //大于6秒的呼入
把这段和上面分页查询再做一个联合查询执行效率非常慢。所以问问各位大侠,这种情况是不是应该用临时表。