Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


АГРЕГАТНЫЕ ФУНКЦИИ




 

Агрегатные функции производят одиночное значение для всей группы таблицы.

Вот список этих функций:

COUNT выдаёт количество строк или не-NULL значений полей, которые выбрал запрос.

SUM выдаёт арифметическую сумму всех выбранных значений данного поля.

AVG выдаёт усреднение всех выбранных значений данного поля.

MAX выдаёт наибольшее из всех выбранных значений данного поля.

MIN выдаёт наименьшее из всех выбранных значений данного поля.

 

Задача. Найти средний бал по экзаменам.

SELECT AVG (res)

FROM examen

 

Задача. Найти количество записей в таблице Year_His для студента c номером 45.

SELECT count(*)

FROM year_his

WHERE st_id=45

 

  1. Подсчитать количество студентов, чьи имена и фамилии начинаются на букву «А»
  2. Найти максимальный курс, на котором учатся студенты.
  3. Найти наибольшую оценку по предмету Компьютерные науки
  4. Найти средний бал по Математическому анализу.

ПРЕДЛОЖЕНИЕ GROUP BY

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

 

Задача. Найти средний бал по каждому предмету из таблицы Examen

SELECT subj_code, avg(res)

FROM examen

Group by subj_code

 

ПРЕДЛОЖЕНИЕ HAVING

Предложение HAVING определяет критерии, используемые, чтобы удалять определенные группы из вывода, точно так же, как предложение WHERE делает это для отдельных строк.

Задача. Составить запрос выборки для каждого студента количества записей в таблице Year_His. Коды студентов должны быть в интервале [30;60].

SELECT st_id, count(st_id)

FROM year_his

GROUP BY st_id

HAVING st_id<=60 and st_id>=30

 

  1. Составьте запрос к таблице Year_His, группирующий записи по отделениям, курсу и группе.
  1. Составьте запрос к таблице Year_His, выдающий количество записей для каждого отделения и каждого курса.
  1. Составьте запрос, подсчитывающий для каждого имени, сколько раз встречаются студенты с таким же именем.
  1. Напишите запрос, определяющий количество однофамильцев (сгруппировать по фамилиям и подсчитать количество).

 

 

ОБЪЕДИНЕНИЕ ТАБЛИЦ

 

Обращение к полям таблиц осуществляется с указанием имени_таблицы.имени_поля

Fio.st_id

Fio.name

Pers_list.st_id

 

Задача. Для каждой фамилии указать аккаунт и пароль

SELECT fio.surname, fio.name, pers_list.acc, pers_list.psw

FROM fio, pers_list

WHERE fio.st_id=pers_list.st_id;

 

Задача. Для каждой фамилии указать аккаунт и пароль удалив пустые строки

SELECT fio.surname, fio.name, pers_list.acc, pers_list.psw


Поделиться:

Дата добавления: 2015-08-05; просмотров: 59; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты