Поделиться через


Как сгруппировать строки в результатах запроса (визуальные инструменты для баз данных)

Если нужно создать подытог или отобразить другие сводные сведения о подмножествах таблицы, создайте группы, используя статистический запрос. Каждая такая группа обобщает данные всех строк таблицы, имеющих одно и то же значение.

Например, нужно узнать среднюю стоимость книг, данные о которых хранятся в таблице titles, и разделить результаты в соответствии с идентификаторами издателей. Для этого следует сгруппировать запрос на основе идентификатора издателя (например pub_id). Сведения, выведенные таким запросом, могли бы выглядеть следующим образом:

Результаты запроса: средние цены, сгруппированные по издателям

Группируя данные, можно отобразить только сводные или сгруппированные данные, подобные следующим.

  • Значения сгруппированных столбцов (столбцов, указанных в предложении GROUP BY). В приведенном выше примере столбец pub_id является сгруппированным.

  • Значения, созданные статистическими функциями, такими как SUM( ) и AVG( ). В приведенном выше примере второй столбец создается путем применения функции AVG( ) к столбцу price.

Отобразить значения отдельных строк нельзя. Например, если группируются данные только по идентификаторам издателей, нельзя отобразить в запросе еще и отдельные названия книг. Таким образом, если столбцы добавляются в вывод запроса, конструктор запросов и представлений автоматически добавляет их в предложение GROUP BY инструкции на область SQL. Если нужно, чтобы столбец содержал статистические данные, можете определить для него статистическую функцию.

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

Например, следующий запрос таблицы titles группирует данные по идентификаторам издателей (pub_id) и типам книг (type). Результаты запроса упорядочиваются по идентификаторам издателей и представляют сводные данные о каждом типе книг, издаваемых издателем:

SELECT pub_id, type, SUM(price) Total_priceFROM titlesGROUP BY pub_id, type

Итоговый вывод мог бы выглядеть следующим образом:

Результаты запроса: цены, сгруппированные по издателям и типам

Группирование строк

  1. Инициируйте запрос, добавив таблицы, сводную информацию о которых нужно получить, в область схем.

  2. Щелкните правой кнопкой мыши на фоне области схем и выберите в контекстном меню пункт Добавить Group By. Конструктор запросов и представлений добавит столбец Group By в сетку в области критериев.

  3. Добавьте столбец или столбцы, которые нужно сгруппировать, в область критериев. Если нужно, чтобы столбец был отображен в выводе запроса, не забудьте убедиться в том, что для вывода выбран столбец Вывод.

    Конструктор запросов и представлений добавит в инструкцию, отображаемую на области SQL, предложение GROUP BY. Например, инструкция SQL может иметь такой вид:

    SELECT pub_idFROM titlesGROUP BY pub_id
    
  4. Добавьте в область критериев столбец или столбцы, статистическую информацию о которых нужно получить. Убедитесь, что столбцы помечены для вывода.

  5. В ячейке Группировать для столбца, статистическую информацию о котором нужно получить, выберите подходящую статистическую функцию.

    Конструктор запросов и представлений автоматически назначит этому столбцу псевдоним. Псевдоним, созданный автоматически, можно заменить более содержательным псевдонимом. Дополнительные сведения см. в разделе Как создать псевдонимы столбцов (визуальные инструменты для баз данных).

    Добавление псевдонима столбца в результирующий набор запроса

    Соответствующая инструкция могла бы выглядеть в области SQL следующим образом:

    SELECT   pub_id, SUM(price) AS TotalpriceFROM     titlesGROUP BY pub_id