只需使用条件聚合:
SELECt SUM(CASE WHEN STATUS = 'A' THEN 1 ELSE 0 END) AS A_COUNT , SUM(CASE WHEN STATUS = 'B' THEN 1 ELSE 0 END) AS B_COUNT , SUM(CASE WHEN STATUS = 'C' THEN 1 ELSE 0 END) AS C_COUNT , SUM(CASE WHEN STATUS = 'D' THEN 1 ELSE 0 END) AS D_COUNT , SUM(CASE WHEN STATUS = 'E' THEN 1 ELSE 0 END) AS E_COUNT , SUM(CASE WHEN STATUS = 'F' THEN 1 ELSE 0 END) AS F_COUNT FROM XYZ ;
我应该指出,将值放在单独的行上甚至更加容易:
select status, count(*)from xyzgroup by status;



