简体   繁体   English

如何优化来自同一表的多个SELECT的SQL查询?

[英]How to optimize SQL query with multiple SELECTs from the same table?

How can I optimizate this SQL Query? 如何优化此SQL查询?

(SELECT SUM (same_field) FROM same_table WHERE other_same_field = '0') AS a,
(SELECT SUM (same_field) FROM same_table WHERE other_same_field = '1') AS b,
(SELECT SUM (same_field) FROM same_table WHERE other_same_field = '2') AS c

When you want to do a pivot in MySQL you can do Aggregate on a Case statement 当您想在MySQL中进行数据透视时,可以对Case语句进行汇总

SELECT 
    SUM ( CASE WHEN other_same_field  = 0 THEN same_field ELSE 0 END) as A,
    SUM ( CASE WHEN other_same_field  = 1 THEN same_field ELSE 0 END) as B,
    SUM ( CASE WHEN other_same_field  = 2 THEN same_field ELSE 0 END) as C
FROM same_table
WHERE other_same_field IN (0, 1, 2)

This will give you a vertical result. 这将为您带来垂直的结果。

SELECT other_same_field, SUM(same_field)
FROM same_table
WHERE other_same_field IN (0, 1, 2)
GROUP BY other_same_field

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM