1

インライン サブクエリを使用する代わりに、日付列を含むテーブルから複数の列を返すより効果的な方法はありますか?

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

12 個のインライン サブクエリを使用すると、クエリ エンジンに負荷がかかるからですよね?

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 に答える