Найти общую сумму столбца как All в конце результата mysql

#mysql #sql

#mysql #sql

Вопрос:

Я хотел бы создать таблицу, подобную результату, с помощью mysql, чтобы я мог использовать данные для построения диаграмм слияния, чтобы у меня были итоговые значения по оси y и client_types по оси x, таким образом, что-то вроде этого

 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
  

Итак, что я хочу, так это иметь возможность добавлять в тип клиента ‘All’ и sum (Total) таким образом

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

Предложения

Ответ №1:

Вы хотите rollup :

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

Примечание: выражение DISTINCT(COUNT('client_type')) близко к бессмысленному. Вам в принципе никогда не нужно select distinct с a group by . distinct Применяется ко всем значениям в select , поэтому скобки вокруг count('client_type') ничего не делают. И вы считаете константу, строку 'client_type' , когда, возможно, вы намереваетесь столбец.