1

Is there a more effective way to return multiple columns from a table that contains a date column instead of using inline subqueries?

SELECT (SELECT SUM(`value`) FROM `data` WHERE MONTH(`date`) = 1 AS `Jan`),
       (SELECT ...) // Feb, Mar, etc.

Because having 12 inline subqueries is taxing on the query engine, right?

4

2 回答 2

4
SELECT YEAR(`date`) as `YEAR`, 
SUM(CASE WHEN MONTH(`date`)=1 THEN `value` ELSE 0 END) AS `JAN`, 
... 
GROUP BY YEAR(`date`)
于 2013-10-30T13:02:31.833 回答
0
SELECT SUM(`value`) FROM `data` GROUP BY MONTH(`date`)
于 2013-10-30T13:02:45.933 回答