Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
применимо к:SQL Server
Вы можете создать запрос, в котором каждая строка результатов соответствует всей группе строк из исходных данных. При сворачивании строк следует учитывать несколько моментов.
Можно исключить повторяющиеся строки Некоторые запросы могут создавать результирующие наборы, в которых отображаются несколько одинаковых строк. Например, можно создать результирующий набор, в котором каждая строка содержит имя города и штата города, содержащего автора, но если город содержит несколько авторов, есть несколько одинаковых строк. Результирующий SQL может выглядеть следующим образом:
SELECT city, state FROM authors;
Результирующий набор, созданный предыдущим запросом, не очень полезен. Если город содержит четырех авторов, результирующий набор содержит четыре идентичные строки. Так как результирующий набор не включает столбцы, отличные от города и штата, невозможно отличить одинаковые строки друг от друга. Одним из способов избежать таких повторяющихся строк является включение дополнительных столбцов, которые могут отличать строки. Например, если вы включаете имя автора, каждая строка отличается (при условии, что два похожих автора не живут в одном городе). Результирующий SQL может выглядеть следующим образом:
SELECT city, state, fname, minit, lname FROM authors;
Конечно, предыдущий запрос устраняет симптом, но на самом деле не решает проблему. То есть результирующий набор не имеет повторяющихся данных, но он больше не является результирующим набором о городах. Чтобы исключить дубликаты в исходном результирующем наборе и по-прежнему содержать каждой строке описание города, можно создать запрос, возвращающий только отдельные строки. Результирующий SQL может выглядеть следующим образом:
SELECT DISTINCT city, state FROM authors;
Дополнительные сведения об устранении дубликатов см. в разделе "Исключить повторяющиеся строки".
Можно вычислить группы строк т. е. можно суммировать сведения в группах строк. Например, можно создать результирующий набор, в котором каждая строка содержит имя города и штата города, содержащего автора, а также количество авторов, содержащихся в этом городе. Результирующий SQL может выглядеть следующим образом:
SELECT city, state, COUNT(*) FROM authors GROUP BY city, state;
Дополнительные сведения о вычислении групп строк см. в разделе "Сводка результатов запроса " и " Сортировка и группирование результатов запроса".
Можно использовать критерии выбора для включения групп строк Например, можно создать результирующий набор, в котором каждая строка содержит имя города и штата города, содержащего несколько авторов, а также количество авторов, содержащихся в этом городе. Результирующий SQL может выглядеть следующим образом:
SELECT city, state, COUNT(*) FROM authors GROUP BY city, state HAVING COUNT(*) > 1;
Дополнительные сведения о применении критериев выбора к группам строк см. в разделе "Указание условий для групп " и "Использование предложений HAVING и WHERE" в одном запросе.