Группа SQL по путанице в функциональности

#mysql-workbench

#mysql-workbench

Вопрос:

я новичок в mysql, я хотел бы знать, как эффективно использовать группировку по функциям для получения результатов?пожалуйста, предоставьте примеры с объединениями, связанными с TIA.

Ответ №1:

Предложение GROUP BY используется для ограничения агрегатной функции (из которых count() является только одной из нескольких) определенным диапазоном. Без предложения group агрегат будет работать со всеми значениями в таблице (при необходимости дополнительно определяется предложением WHERE). Группировка сначала разбивает строки в таблице / представлении на отдельные наборы, определенные предложением group (все эти записи принадлежат одной группе, которые имеют одинаковое значение, указанное предложением GROUP BY ), а затем применяет агрегат к каждому из них.

Пример:

Предположим, у вас есть таблица с людьми, отделами и доходами. Теперь вы можете определить сумму всех доходов (или max, или min и т. Д.), Выполнив

 select sum(income) from people;
  

Который возвращает единственное значение: сумму всех доходов.

Затем для отдельных отделов вы можете сгруппировать результат:

 select department, sum(income) from people group by department;
  

Возвращает столько строк, сколько отделов, и сумму всех доходов на отдел. Подробнее читайте здесь: http://dev.mysql.com/doc/refman/5.6/en/group-by-functions.html вместе со списком возможных агрегатных функций.

Кстати. Не позволяйте людям сбивать вас с толку утверждениями типа «group в основном используется с count()», что совершенно неверно.

Ответ №2:

«group by» обычно используется с count .

Рассмотрим пример таблицы как

 create table Country(state varchar(10),district varchar(10));
  

Теперь предположим, что вы хотите найти, «Сколько районов существует в каждом штате». Я бы использовал запрос.

 select state,count(district) from Country group by state;