我需要为一组数据计算多个总和,具有不同的WHERE条件。
我可以通过以下两种方式之一来实现:
多个子查询。
- (SELECT SUM(A)FROM B WHERE C> 0和D = 6 GROUP BY id)作为sum_a,
- (SELECT SUM(A)FROM B,其中C< 0和D = 6 GROUP BY id)为sum_b,
- .........还有6个
醇>
或者我可以这样做,使用JOIN和条件SUM:
- LEFT JOIN(选择
- SUM(IIF(C> 0和D = 6,A,0))为sum_a,
- SUM(IIF(C <0和D = 6,A,0))为sum_a,
- .........还有6个
- FROM B GROUP BY id)
- 如表
- ON table.id = main.id
醇>
如果所有条件都被编入索引,(在14,000,000行表中),哪种方式更快?