MySQL计算多个SUM()变量

AliGüzel:

我想计算2 sum()我已经尝试过查询,如下所示,但工作非常缓慢。有什么想法可以使它更好吗?

SELECT customer, 
       SUM(CASE WHEN book_day BETWEEN '2020-01-01' AND '2020-01-31'  
                THEN pax+free 
                ELSE 0 
                END) AS January,
       SUM(CASE WHEN book_day BETWEEN '2020-02-01' AND '2020-02-31'  
                THEN pax+free 
                ELSE 0 
                END) AS February,
       ( SUM(CASE WHEN book_day BETWEEN '2020-01-01' AND '2020-01-31'  
                  THEN pax+free 
                  ELSE 0 
                  END) + 
         SUM(CASE WHEN book_day BETWEEN '2020-02-01' AND '2020-02-31'  
                  THEN pax+free 
                  ELSE 0 
                  END) ) AS total
 FROM rezervations  

我怎样才能使像 January + February as total

aRvi:

保留BETWEEN '2020-01-01' AND '2020-02-29'在where子句中。

确保在book_day列上有索引

SELECT customer, 
SUM(CASE WHEN book_day BETWEEN '2020-01-01' AND '2020-01-31' THEN pax+free ELSE 0 END) as January,
SUM(CASE WHEN book_day BETWEEN '2020-02-01' AND '2020-02-29'  THEN pax+free ELSE 0 END) as February,
(SUM(CASE WHEN book_day BETWEEN '2020-01-01' AND '2020-02-29'  THEN pax+free ELSE 0 END) ) as total
 FROM rezervations 
WHERE
book_day BETWEEN '2020-01-01' AND '2020-02-29'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章