Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Предложение HAVING



Предположим, что в предыдущем примере, вы хотели бы увидеть только максимальные суммы приобретений, значения которых выше 90000. Вы не сможете использовать агрегатную функцию в предложении WHERE (если вы не используете подзапрос, описанный ниже), потому что предикаты оцениваются в терминах одиночной строки, а агрегатные функции оцениваются в терминах групп строк. Это означает, что вы не сможете сделать что-нибудь подобно следующему:

SELECT BNum, MAX(SSum) FROM SellsWHERE MAX(SSum)>90000GROUP BY BNum

Это будет отклонением от строгой интерпретации ANSI. Чтобы увидеть максимальную стоимость приобретений свыше 90000, вы можете использовать предложение HAVING. Предложение HAVING определяет критерии, используемые для удаления определенных групп из вывода, после группировки, точно также как предложение WHERE делает это для индивидуальных строк. Правильной командой будет следующая:

SELECT BNum, MAX(SSum)

FROM Sells

GROUP BY BNum

HAVING MAX(SSum)>90000

Bnum  
   
   

Аргументы в предложении HAVING следуют тем же самым правилам, что и в предложении SELECT, состоящей из команд использующих GROUP BY, но они должны иметь одно значение на группу вывода. Следующая команда будет запрещена:

SELECT BNum, SDate, MAX(SSum)

FROM Sells

GROUP BY BNum, SDate

HAVING SDate="17.02.01"

Поле SDate не может быть вызвано предложением HAVING, потому что оно может иметь больше чем одно значение на группу вывода. Чтобы избежать такой ситуации, предложение HAVING должно ссылаться только на агрегаты и поля выбранные GROUP BY. Имеется правильный способ сделать вышеупомянутый запрос:

SELECT BNum, MAX(SSum) FROM Sells WHERE SDate="17.02.01"GROUP BY BNum

21 Язык запросов SQL: запросы выборки, запросы с параметрами.

Рост количества данных, необходимость их хранить и обрабатывать привели к тому, что возникла потребность в создании стандартного языка запросов к базам данных, который мог бы функционировать в большом количестве различных видов компьютерных систем. Действительно, такой стандартный язык позволяет пользователям манипулировать данными независимо от того, работают ли они на персональном компьютере, сетевой рабочей станции, или на универсальной ЭВМ.

SQL (Structured Query Language) - это сокращенное название структурированного языка запросов, предоставляющего средства создания и обработки данных в реляционных базах. Независимость от специфики компьютерных технологий, а также поддержка SQL лидерами промышленности в области технологии реляционных баз данных сделали его основным стандартным языком запросов.

Реализация в SQL концепции операций, ориентированных на табличное представление данных, позволила создать компактный язык с небольшим набором предложений. SQL может использоваться как для выполнения запросов, так и для построения прикладных программ.

В нем существуют:

• предложения определения данных - определение базы данных а также определение и уничтожение таблиц и индексов;

• запросы на выбор данных - предложение SELECT;

• предложения модификации данных - добавление, удаление и изменение данных;

• предложения управления данными - предоставление и отмена привилегий на доступ к данным, управление транзакциями и другие.

SQL предоставляет возможность выполнять

• арифметические вычисления, включая разнообразные функциональные преобразования, обработку текстовых строк и выполнение операций сравнения значений арифметических выражений и текстов;

• упорядочение строк или столбцов при выводе содержимого таблиц на печать или экран дисплея;

• создание представлений, позволяющих пользователям интерпретировать данные без увеличения их объема в БД;

• сохранение выводимого по запросу содержимого таблицы, нескольких таблиц или представления в другой таблице;

• группирование данных и применение к этим группам таких операций, как среднее, сумма, максимум, минимум, число элементов и т.п.

Реляционная база данных - это связанная информация, сохраняемая в двумерных таблицах со строками и столбцами. Строки обычно называются записями, столбцы полями.

В настоящей разработке будут рассмотрены вопросы, связанные с командами языка SQL, позволяющими производить выборку информации из базы данных, изменение информации в таблицах базы данных, но не в их структуре. Эта группа команд языка SQL называется DML - Data Manipulation Language (язык обработки данных).





Дата публикования: 2015-10-09; Прочитано: 209 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...