现在简单的SQL一句,由于数据量过大,而一直处于运行状态,无法显示最终结果,哪位可以指教下,帮忙解答
select substr(busi_date,1,6),orgid,brhid,operway_0, count(operway_0), sum(matchamt)
from his_hx_orderrec where substr(busi_date,1,6) = busi_date group by substr(busi_date,1,6),orgid,brhid,operway_0;
如果直接SELECT * FROM his_hx_orderrec 只需要0.6秒就能检索出结果
SELECT * FROM his_hx_orderrec where substr(busi_date,1,6), = '200906' 这样一加就无法显示了,一直运行中,但奇怪的是如果后面的检索条件的值='200907'时,结果就能显示出来,只是等待时间会久点,其它条件则不能。。
加上另两个聚合函数和GROUP BY更加是显示不了,单独加GROUP BY不加其它也同样!!望高手指点下。。应怎么处理,!!
select substr(busi_date,1,6),orgid,brhid,operway_0, count(operway_0), sum(matchamt)
from his_hx_orderrec where substr(busi_date,1,6) = busi_date group by substr(busi_date,1,6),orgid,brhid,operway_0;
如果直接SELECT * FROM his_hx_orderrec 只需要0.6秒就能检索出结果
SELECT * FROM his_hx_orderrec where substr(busi_date,1,6), = '200906' 这样一加就无法显示了,一直运行中,但奇怪的是如果后面的检索条件的值='200907'时,结果就能显示出来,只是等待时间会久点,其它条件则不能。。
加上另两个聚合函数和GROUP BY更加是显示不了,单独加GROUP BY不加其它也同样!!望高手指点下。。应怎么处理,!!
from his_hx_orderrec
where substr(busi_date,1,6) = busi_date
group by substr(busi_date,1,6),orgid,brhid,operway_0; 你的语句没错,是oracle的吧?不过你的条件substr(busi_date,1,6) = busi_date 是否正确?
如果是这个条件,不如改为:length(busi_date) = 6
如:substr(busi_date,1,6), = '200906' 一加WHERE和GROUP BY 就运行不出结果了。。去掉直接SELECT * 是能马上检索出结果的
不是这方面的问题。上面说的,库里有张hx_orderrec和his_hx_orderrec一样的表,只是his_hx_orderrec存放的是所有历史记录都包括,所以数据量大的问题,同样的SQL把表名换成hx_orderrec是可以运行的。。
因为his_hx_orderrec里的数据量太大,所以一加WHERE和GROUP BY 就一直处于执行状态,等了很久也显示不出结果,望高手解答,,,!!!