最後の行として合計 (または平均などのその他の操作) を含む SQL 選択クエリに行を追加しようとしています。これは、GROUP BY ... WITH ROLLUP に似たものです。
まず、フィールド ID、A、B、C を持つテーブル t があり、これらはすべて数値であるとします。また、ID は一意ではなく、カテゴリです。私の SELECT クエリは、指定された範囲内にこれらの数値がいくつあるかをカウントすることになっています。
したがって、たとえば、最終結果は次のようになります。
(SELECT t.ID, a.ac, b.bc, c.cc FROM t
LEFT JOIN (SELECT COUNT(*) cc,ID FROM t WHERE A BETWEEN 2 AND 4 GROUP BY ID) AS a ON a.ID=t.ID
LEFT JOIN (SELECT AVG(B) cc,ID FROM t WHERE B BETWEEN 19 AND 40 GROUP BY ID) AS b ON b.ID=t.ID
LEFT JOIN (SELECT COUNT(*) cc,ID FROM t WHERE C BETWEEN 12 AND 14 GROUP BY ID) AS c ON a.ID=t.ID GROUP BY t.ID)
union
(select 'Overall',
(SELECT COUNT(*) cc FROM t WHERE A BETWEEN 2 AND 4),
(SELECT AVG(B) cc FROM t WHERE B BETWEEN 19 AND 40),
(SELECT COUNT(*) cc FROM t WHERE C BETWEEN 12 AND 14) );
ただし、このソリューションは理想的ではありません。A、B、および C の条件を再度指定する必要があるためです。条件を 1 回だけ指定して同じ結果を達成する簡単な方法があるかどうかを知りたいです。
前もって感謝します。