Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник EXCEL БД SQL.doc
Скачиваний:
2
Добавлен:
26.11.2018
Размер:
2.62 Mб
Скачать

Дополнительные сведения

Функции Min и Max используются для определения наименьшего и наибольшего значений из поля на основе выборки или группировки. Например, можно применить эти функции для возврата наименьшей и наибольшей стоимости доставки. Если не указан способ группировки, используется вся таблица.

Следующий запрос определяет максимальную зарплату.

SELECT Max([К выплате])AS Максимум

FROM Ведомость

WHERE Факультет = “ЭФ”;

Ведомость

Фамилия

Факультет

К выплате

Максимум

ИСАЕВ

MM

6500

5600

ИСАЧКИН

ЭФ

5000

КАМЕНЕВ

ВМК

4800

ИВАННИКОВ

ЭФ

4000

ИВАНОВ

ФФ

5800

КАРТАШЕВ

ЭФ

5600

КАШОЛКИН

ВМК

4500

Предложение group by

Объединяет записи с одинаковыми значениями в указанном списке полей в одну запись. Если инструкция SELECT содержит статистическую функцию SQL, например Sum или Count, то для каждой записи будет вычислено итоговое значение.

Синтаксис

SELECT списокПолей FROM таблица [WHERE] условиеОтбора GROUP BY [группируемыеПоля]

Ниже перечислены аргументы инструкции SELECT, содержащей предложение GROUP BY:

Элемент

Описание

группируемыеПоля

Имена полей (до 10), которые используются для группировки записей. Порядок имен полей в аргументе группируемыеПоля определяет уровень группировки для каждого из этих полей.

Дополнительные сведения

Предложение GROUP BY является необязательным.

Итоговые значения не рассчитываются, если инструкция SELECT не содержит статистической функции SQL.

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

Используйте предложение WHERE для исключения записей из группировки, а предложение HAVING для применения фильтра к записям после группировки.

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

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

SELECT Группа, Count(Группа) as Колич, Avg(Эк) as [Ср б Эк], Avg(Инф) as [Ср б Инф]

INTO [Итоговая ведомость]

FROM Ведомость

GROUP BY Группа;

Ведомость Итоговая ведомость

Фамилия

Группа

Эк

Инф

Группа

Колич

Ср б Эк

Ср б Инф

АНДРЕЕВ

101

4

3

101

15

4,2

4,4

БАРАБАНОВ

104

5

2

102

17

3,9

3,3

БАРАНОВ

102

3

3

103

14

3,8

4,0

БРАГИН

101

2

4

104

16

4,1

3,8

БУБНОВ

104

3

3

105

15

4,5

3,9

ВЕРБИЦКИЙ

105

4

2

ВОДОЛАЗСКИЙ

102

5

3

ГЛОТОВ

102

4

4

ГОЛОВИН

103

3

5

…………………..

……

..

..

ГРИГОРОВИЧ

101

3

3

ДАНЦКЕР

102

2

2

Следующий пример подсчитывает количество студентов в МГУ на обучающимся на каждом факультете по курсам обучения

SELECT Факультет, Курс, Count(Фамилия) as Количество

FROM Ведомость

GROUP BY Факультет, Курс;

Ведомость

Фамилия

Факультет

Курс

Факультет

Курс

Количество

АНДРЕЕВ

ММ

4

MM

1

320

БАРАБАНОВ

ВМК

5

MM

2

290

БАРАНОВ

ММ

3

MM

3

280

БРАГИН

ЭФ

2

MM

4

275

БУБНОВ

ММ

1

MM

5

260

ВЕРБИЦКИЙ

ЭФ

4

BMK

1

340

ВОДОЛАЗСКИЙ

ВМК

5

BMK

2

320

ГЛОТОВ

ЭФ

4

BMK

3

315

ГОЛОВИН

ММ

3

BMK

4

307

…………………..

…..

BMK

5

298

ГРИГОРОВИЧ

ВМК

1

ЭФ

1

420

ДАНЦКЕР

ЭФ

2

ЭФ

2

380