русс | укр

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

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

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

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


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

GROUP BY


Дата добавления: 2015-07-09; просмотров: 476; Нарушение авторских прав


Упорядочение результатов запроса (ключевое слово ORDER BY…):

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

MAX() - максимальное значение в колонке

MIN()- минимальное значение в колонке

COUNT() - количество значений в колонке

SUM() - сумма всех значений в колонке

AVG() - среднее значение

SELECT

PD.PNUM, --выбранная колонка.

SUM(PD.VOLUME) AS SM --сумма всех значений в колонке.

FROM PD --получим новую таблицу.

GROUP BY PD.DNUM; --упорядочить результата запроса.

Этот запрос будет выполняться следующим образом.

· Сначала строки исходной таблицы будут сгруппированы так, чтобы в каждую группу попали строки с одинаковыми значениями DNUM.

· Потом внутри каждой группы будет просуммировано поле VOLUME.

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

Исходная таблица PD

 

Результат после группировки :

 

HAVING

 

n Получить номера деталей, суммарное поставляемое количество которых превосходит 400 (ключевое слово HAVING…):

SELECT

PD.DNUM,

SUM(PD.VOLUME) AS SM

GROUP BY PD.DNUM

HAVING SUM(PD.VOLUME) > 400; -- отбор групп.

 

В результате получим следующую таблицу из исходной таблицы PD:

Замечание. В одном запросе могут встретиться как условия отбора строк в разделе WHERE, так и условия отбора групп в разделе HAVING. Условия отбора групп нельзя перенести из раздела HAVING в раздел WHERE. Аналогично и условия отбора строк нельзя перенести из раздела WHERE в раздел HAVING, за исключением условий, включающих поля из списка группировки GROUP BY.

 

Выполнение операций с несколькими таблицами

SELECT

Оператор SELECT позволяет выбирать значения полей из нескольких таблиц.

SELECT -- оператор выбирает требуемые таблицы.



P.PNUM,

P.PNAME,

PD.DNUM,

PD.VOLUME

FROM P, PD

WHERE P.PNUM = PD.PNUM;

 

Исходные таблицы P и PD :

 

 

В результате получим новую таблицу, в которой строки с данными о поставщиках соединены со строками с данными о поставках деталей:

Замечание. Соединяемые таблицы перечислены в разделе FROM оператора, условие соединения приведено в разделе WHERE. Раздел WHERE, помимо условия соединения таблиц, может также содержать и условия отбора строк.

 

 

UNION

n Получить имена поставщиков, имеющих статус, больший 3 или поставляющих хотя бы одну деталь номер 2 (объединение двух подзапросов - ключевое слово UNION):

 

SELECT P.PNAME

FROM P

WHERE P.STATUS > 3

UNION -- результат после объединения

SELECT P.PNAME

FROM P, PD

WHERE P.PNUM = PD.PNUM AND

PD.DNUM = 2 ;

n Результирующие таблицы объединяемых запросов должны быть совместимы, т.е. иметь одинаковое количество столбцов и одинаковые типы столбцов в порядке их перечисления.

n Не требуется, чтобы объединяемые таблицы имели бы одинаковые имена колонок.

n Это отличает операцию объединения запросов в SQL от операции объединения в реляционной алгебре.

n Наименования колонок в результирующем запросе будут автоматически взяты из результата первого запроса в объединении.

 

 



<== предыдущая лекция | следующая лекция ==>
Начало работы с MySQL | Упорядочение результата ORDER BY


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


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

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

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


 


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

 
 

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

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