Дайте определение групповым функциям и опишите особенности их применения в SQL. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Дайте определение групповым функциям и опишите особенности их применения в SQL.



 

Предложение GROUP BY используется для определения групп выходных строк, к которым могут применяться агрегатные функции (COUNT, MIN, MAX, AVG и SUM). Если это предложение отсутствует, и используются агрегатные функции, то все столбцы с именами, упомянутыми в SELECT, должны быть включены в агрегатные функции, и эти функции будут применяться ко всему набору строк, которые удовлетворяют предикату (условию) запроса.

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

 

Предложение HAVING — необязательный параметр оператора SELECT для указания условия на результат агрегатных функций (MAX, SUM, AVG, …). Это предложение включается в запрос лишь при наличии предложение GROUP BY.

HAVING <условия> аналогичен WHERE <условия> за исключением того, что строки отбираются не по значениям столбцов, а строятся из значений столбцов указанных в GROUP BY и значений агрегатных функций, вычисленных для каждой группы, образованной GROUP BY. Необходимо, чтобы в SELECT были заданы только требуемые в выходном потоке столбцы, перечисленные в GROUP BY и/или агрегированные значения.

 

Предложение ORDER BY сортирует записи, полученные в результате запроса, в порядке возрастания (ASC) или убывания (DESC) в соответствии со значениям выбранных столбцов.

Если предложение ORDER BY содержит несколько атрибутов, то сначала строки сортируются по первому атрибуту. Затем строки, имеющие совпадающие значения в первом атрибуте, сортируются по второму атрибуту и т. д. По умолчанию используется порядок сортировки по возрастанию (от «A» до «Я» и от 0 до 9). Предложение ORDER BY не является обязательным. Кроме того, в список ORDER BY можно включать не только имя столбца, но и его порядковую позицию в перечне SELECT.


Разъясните понятие вложенный подзапрос, укажите его назначение, разновидности и особенности их использования в SQL.

Вложенный подзапрос - это подзапрос, заключенный в круглые скобки и вложенный в WHERE (HAVING) фразу предложения SELECT.

 

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

 

Виды вложенных подзапросов: простые и коррелированные вложенные подзапросы.

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

Коррелированные вложенные подзапросы обрабатываются системой в обратном порядке. Сначала выбирается первая строка рабочей таблицы, сформированной основным запросом, и из нее выбираются значения тех столбцов, которые используются во вложенном подзапросе (вложенных подзапросах). Если эти значения удовлетворяют условиям вложенного подзапроса, то выбранная строка включается в результат. Затем выбирается вторая строка и т.д., пока в результат не будут включены все строки, удовлетворяющие вложенному подзапросу (последовательности вложенных подзапросов). Они включаются в WHERE (HAVING) фразу с помощью условий IN, EXISTS или одного из условий сравнения (= | <> | < | <= | > | >=).

 

Простые вложенные подзапросы используются для представления множества значений, исследование которых должно осуществляться в каком-либо предикате IN. Оператор IN означает равенство любому из значений, полученных во внутреннем запросе.

 



Поделиться:


Последнее изменение этой страницы: 2017-01-27; просмотров: 178; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.238.86.122 (0.006 с.)