Запрос суммы MySQL

#mysql

#mysql

Вопрос:

Мне нужен запрос MySQL, чтобы выполнить следующее: выбрать все элементы в таблице, сгруппировать их по типу, упорядочить их по типу count, а также суммировать все подсчеты.

Это то, что я делал до сих пор:

 select type, count(*) as cnt from $tbl_name group by type order by count(*) desc;
  

Это дает мне только количество для каждой группы. Что я должен добавить, чтобы этот код также показывал общее количество (суммировал количество из каждой группы).

Ответ №1:

 select * from (
select type as type, 
count(*) as cnt 
from $tbl_name 
group by type WITH ROLLUP) as inner_table
order by cnt desc;
  

Обратите внимание, что первой строкой будет итоговая сумма.

Ссылка на НАКОПИТЕЛЬНЫЙ файл

Комментарии:

1. И как мне получить доступ к значению?

2. Извините, я отредактировал select, потому что он выдал «неправильное использование свертки и ПОРЯДКА ПО». При каком значении у вас возникают проблемы с доступом к нему?

3. Этот запрос возвращает: Ошибка синтаксического анализа: синтаксическая ошибка, неожиданный T_VARIABLE

4. @Cristy, в этом запросе нет переменной T_VARIABLE. Я просто запускаю его (заменил имя таблицы и название столбца) в моей базе данных MySQL, и все просто отлично.

5. Извините, это работает нормально, но я все еще не знаю, как получить из него общую сумму. Можете ли вы это объяснить? Я имею в виду, я получаю cnt, извлекая результат и обращаясь к $ row[‘cnt’] , но как мне получить общую сумму? (внутренняя таблица)

Ответ №2:

Попробуйте это:

выберите тип, SUM(count(*)) как cnt из группы $tbl_name по типу order by count(*) desc;

Комментарии:

1. Мне нужно иметь cnt, который я делал раньше, а также переменную, показывающую, сколько элементов всего.

2. если вы извлекаете запрос в loop , вы можете сделать это там.

3. Я этого не делаю, я извлекаю только первые 6 строк.