9

Count 列の合計を計算する行「Total」を表示しようとしています。次のコードには、Environment と Count の 2 つの列があります。

select 
case 
when env is null THEN 'Unknown' 
else env
end,
count(*) as Count
from env_table
group by env
order by env
/

私が望む出力:

Windows200

Linux 120

合計 320

上記でわかるように、私がやりたいことは、本質的に SUM(count(*)) を実行する "Total" という行を最後に追加することです。これを行うための適切な構文は何ですか? ありがとう!

4

5 に答える 5

27

WITH ROLLUP修飾子を使用してGROUP BY:

SELECT   IFNULL(env, 'Unknown'),
         COUNT(*) AS Count
FROM     env_table
GROUP BY env WITH ROLLUP
ORDER BY env
于 2012-05-03T14:54:10.107 に答える
5

たぶん、このようなものですか?

SELECT   IFNULL(env, 'Unknown'),
         COUNT(*) AS Count
FROM env_table
GROUP BY env
ORDER BY env
UNION ALL
SELECT   null,
         Count(*)
FROM env_table
于 2012-05-03T14:55:14.893 に答える
0
SELECT env, count 
  FROM (SELECT CASE WHEN env is null THEN 'Unknown' ELSE env END env,
               count(*) count
          FROM env_table
         GROUP BY env
      ORDER BY env)
UNION ALL
SELECT 'Total' env,
       count(*) count
  FROM env_table       
于 2012-05-03T15:03:57.590 に答える