русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Групповые функции.


Дата добавления: 2013-12-23; просмотров: 1036; Нарушение авторских прав


Арифметические выражения.

 

Арифметические выражения в WHERE.

В WHERE формируется условие соединения таблиц, либо условие выбора строк.

 

Пример:

SELECT Фамилия, Оклад, Премия

FROM Сотрудники

WHERE Премия > 0,25*Оклад

Пример. Получить список инженеров в убывающем порядке отношения Премия/Оклад:

SELECT Фамилия, Оклад, Премия, Премия/Оклад

FROM Сотрудники

ORDER BY Премия/Оклад,DESC

 

 

 

К группам строк , извлеченным в результате запроса можно применить групповые функции:

AVG, COUNT, MAX, MIN, SUM

 

Пример. Определить средний оклад экономистов:

 

SELECT AVG(Оклад)

FROM Сотрудники

WHERE Должность = ‘Экономист’

 

Пример. Определить общий оклад и общую премию у всех инженеров:

SELECT SUM(Вклад), SUM(Премия)

FROM Сотрудники

WHERE Должность = ‘Инженер’

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

Пример:

SELECT AVG(Оклад+Премия)*12

FROM Сотрудники

WHERE Должность = ‘Инженер’

Пример. Определить в организации минимальные и максимальные оклады, и их разницу:

SELECT MAX(Оклад) , MIN(Оклад), MAX(Оклад) - MIN(Оклад) AS Результат

 

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

 

Пример. Получить фамилию и оклад сотрудника с максимальным окладом, используя подзапрос:

SELECT Фамилия, Оклад

FROM Сотрудники

WHERE Оклад = ( SELECT МАХ(Оклад) FROM Сотрудники)

 

Тот же результат выдаст и следующий запрос:

SELECT Фамилия, MAX(Оклад).

 

Пример. Подсчитать количество сотрудников 30-го отдела, получающих премию:

SELECT COUNT(Премия)

FROM Сотрудники



WHERE Отдел = 30 AND (Премия >0 OR Премия NOT NULL)

 

COUNT можно использовать со словом DISTINCT

 

Пример. Подсчитать количество должностей сотрудников 30-го отдела:

SELECT COUNT (DISTINCT Должность)

FROM Сотрудники

WHERE Отдел = 30

 

COUNT(*) подсчитывает количество строк, удовлетворяющих условиям поиска выбора.

 

Пример:

SELECT COUNT(*)

FROM Сотрудники

WHERE Отдел = 30

 

Использование агрегативных функций в запросе вместе с операндом GROUP BY.

GROUP BY служит для выборки итоговых данных по группам:

 

Пример. Определить средний оклад сотрудников отделов № 10, №20, №30:

SELECT AVG(Оклад)

FROM Сотрудники

GROUP BY Отдел = 10 (20,30)

 

GROUP BY делит таблицу на группу строк с совпадающими значениями в одном и том же столбце или столбцах.

 

Пример. Выбрать номера отделов и средний оклад по отделу:

SELECT Отдел AVG(Оклад)

FROM Сотрудники

GROUP BY Отдел

 

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

Предложение GROUP BY всегда должно следовать за WHERE, если оно есть, а если WHERE нет – то за FROM

Для распределения строк по группам можно использовать значения столбцов.

Пример:

SELECT Отдел, Должность, COUNT(*), AVG(Оклад)

FROM Сотрудники

GROUP BY Отдел, Должность

 

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

SELECT НазвОтд, Должность, COUNT(*), AVG(Оклад)

FROM Сотрудники, Отделы

WHERE Сотрудники.Отдел = Отделы.Отдел

GROUP BY НазвОтд, Должность

 



<== предыдущая лекция | следующая лекция ==>
Использование псевдонимов (alias). | Вложенные запросы.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.007 сек.