如何最小化这个SQL查询

时间:2015-06-30 04:33:06

标签: sql optimization

?- replace_at(3,0,[A,B,C,D,E,F],Xs), A=1,B=2,C=3,D=4,E=5,F=6.
A = 1, B = 2, C = 3, D = 4, E = 5, F = 6, Xs = [1,2,0,4,5,6] ;
false.

我想最小化查询执行时间。检索数据需要很长时间。

2 个答案:

答案 0 :(得分:2)

您可以像这样使用CASE并删除使用joins

SELECT
    sum(CASE WHEN exacttime >= '2015-06-29 14:29:36' THEN todayssale ELSE 0 END) as sale1
    sum(CASE WHEN exacttime >= '2015-06-23 14:29:36' THEN todayssale ELSE 0 END) as sale2
    sum(CASE WHEN date>='2015-06-29' THEN todayssale ELSE 0 END) as sale3
FROM   sale_details USE index (index_sale) 
WHERE  productid='242431' 
AND (exacttime >= '2015-06-23 14:29:36' OR date>='2015-06-29')

答案 1 :(得分:0)

尝试以下

SELECT 
    (SELECT Sum(todayssale) FROM sale_details WHERE productid='242431' AND exacttime >= '2015-06-29 14:29:36') as sale1, 
    (SELECT Sum(todayssale) FROM sale_details WHERE productid='242431' AND exacttime >= '2015-06-23 14:29:36') as sale2 , 
    (SELECT Sum(todayssale) FROM sale_details WHERE productid='242431' AND date >= '2015-06-29') as sale3