在mysql结果的末尾找到一列的总和为All

时间:2014-06-18 11:33:30

标签: mysql sql

我想用mysql创建一个类似于结果的表,以便我可以使用数据在融合图表中绘制,以便我在y轴上有总计,在x轴上有client_types,因此像这样

n+1'                     ' 
   '  '                  '
10 '  '   '          '   ' 
   '  '   '   '      '   '
0  '  '   '   '  '   '   '
   '__'___'___'__'___'___'___
      A   B   C  D  E   All   

我的查询如下所示返回

SELECT DISTINCT(COUNT('client_type')) AS Total, client_type FROM `clients` GROUP BY client_type

返回

Total Client_type
 18     A
 26     B
 16     C
101     D
  2     E

所以我想要的是能够在客户类型下添加'所有'和总和(总计)

Total Client_type
 18     A
 26     B
 16     C
101     D
  2     E
168     All

建议

1 个答案:

答案 0 :(得分:2)

您想要rollup

SELECT COUNT(*) AS Total, coalesce(client_type, 'All')
FROM `clients`
GROUP BY client_type with Rollup;

注意:表达式DISTINCT(COUNT('client_type'))接近于非感性。您基本上不需要select distinct group bydistinct适用于select中的所有值,因此count('client_type')周围的问题不会发生任何事情。并且,当你想要列时,你正在计算一个常量,字符串'client_type'