практическая работа по базам данных. Введение в ms sql server и tsql
Скачать 0.77 Mb.
|
Группировка данных с помощью команд GROUP BY и HAVINGДля группировки данных применяются команды GROUP BY и HAVING, для использования которых применяется следующий формальный синтаксис: SELECT название_столбца1, название_столбца2, … FROM название_таблицы [WHERE условие_фильтрации_строк] [GROUP BY столбцы_для_группировки] [HAVING условие_фильтрации_групп] [ORDER BY столбцы_для_сортировки] GROUP BY: Оператор GROUP BY определяет, как строки будут группироваться. При группировки данных используются агрегатные функции. Агрегатные функции:
HAVING: HAVING определяет, какие группы будут включены в выходной результат, то есть выполняет фильтрацию групп. Применение HAVING во многом аналогично применению WHERE. Только если WHERE применяется к фильтрации строк, то HAVING используется для фильтрации групп. Неявное соединение таблиц с помощью команды WHEREВыполнить запрос на соединение таблиц с использованием команды WHERE: 1. Вывести данные по название инстиутов, номера групп и старостам, название ученых степеней и ФИО студентов, используя соединения таблиц и соответствующие заполнение ниже, при условии, что: - сортировка осуществляется последовательно по алфавиту; - ФИО студентов будет выводится в одном столбце. SELECT название_таблицы1.название_столбца1_таблицы1 ’название столбца’, название_таблицы2.название_столбца1_таблицы2 ’название столбца’, … FROM название_таблицы1, название_таблицы2, … WHERE название_таблицы1.название_столбца(по которому объединяем) = название_таблицы. название_столбца(по которому объединяем) AND название_таблицы2.название_столбца(по которому объединяем) = название_таблицы. название_столбца(по которому объединяем) AND… ORDER BY 1 ASC/DESC (сортировка) 2 ASC (сортировка) … ; 2. Выдать ФИО студента, его инстиут и группу, степень получаемого образования, а также статус студента в группе, используя соединения таблиц и соответствующие заполнение ниже, при условиях, что: - его фамилия начинается на букву от А до О (используя LIKE), - степень получаемого образования - "Бакалавриат" или "Магистратура" (Ученая степень.Код ученой степени либо 1, либо 2, используя BETWEEN) - сначала "Староста", затем "Студент(ка)", используя CASE - сортировка осуществляется последовательно по: - инстиуту в алфавитном порядке; - степени получаемого образования (сначала "Бакалавриат", затем "Магистратура"); - группе в алфавитном порядке; - ФИО в алфавитном порядке. SELECT название_таблицы1.название_столбца1_таблицы1 ’название столбца’, название_таблицы2.название_столбца1_таблицы2 ’название столбца’, … CASE WHEN название_таблицы.название_столбца = условие THEN 'значение' ELSE 'возвращаемое значение' END 'название столбца’ FROM название_таблицы1, название_таблицы2, … WHERE название_таблицы1.название_столбца(по которому объединяем) = название_таблицы. название_столбца(по которому объединяем) AND название_таблицы2.название_столбца(по которому объединяем) = название_таблицы. название_столбца(по которому объединяем) AND… ORDER BY 1 ASC/DESC (сортировка) 2 ASC (сортировка) … ; |