Главная страница

практическая работа по базам данных. Введение в ms sql server и tsql


Скачать 0.77 Mb.
НазваниеВведение в ms sql server и tsql
Анкорпрактическая работа по базам данных
Дата03.01.2023
Размер0.77 Mb.
Формат файлаdocx
Имя файлаPraktikum (2).docx
ТипПрактикум
#871496
страница6 из 11
1   2   3   4   5   6   7   8   9   10   11

Группировка данных с помощью команд GROUP BY и HAVING


Для группировки данных применяются команды GROUP BY и HAVING, для использования которых применяется следующий формальный синтаксис:

SELECT название_столбца1, название_столбца2, …

FROM название_таблицы

[WHERE условие_фильтрации_строк]

[GROUP BY столбцы_для_группировки]

[HAVING условие_фильтрации_групп]

[ORDER BY столбцы_для_сортировки]
GROUP BY:

Оператор GROUP BY определяет, как строки будут группироваться. При группировки данных используются агрегатные функции.

Агрегатные функции:

Функция

Описание

COUNT(*)

Возвращает количество строк источника записей.

COUNT(<имя поля>)

Возвращает количество значений в указанном столбце.

SUM(<имя поля>)

Возвращает сумму значений в указанном столбце.

AVG(<имя поля>)

Возвращает среднее значение в указанном столбце.

MIN(<имя поля>)

Возвращает минимальное значение в указанном столбце.

MAX(<имя поля>)

Возвращает максимальное значение в указанном столбце.


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 (сортировка)


;
1   2   3   4   5   6   7   8   9   10   11


написать администратору сайта