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

SQL. Предложения group BY и having



Предложение GROUP BY. Оно используется для определения групп выходных строк, к которым могут применяться те или иные агрегатные функции. Предложение GROUP BY всегда используется со встроенными агрегатными функциями. Обратное утверждение наверно. Агрегатные функции могут использоваться в предложениях SELECT, HAVING. Если агрегатные функции используются без предложения GROUP BY, то они будут применяться ко всему набору строк, удовлетворяющему условию запроса. Конструкция GROUP BY работает только на одном уровне. Нельзя разбить каждую из этих групп на группы более низкого уровня, а затем применять стандартную функцию на каждом уровне подчиненности.

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

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

Предложение HAVING. Вместе с GROUP BY может использоваться фраза HAVING, которая для групп имеет то же значение, что и фраза WHERE - для строк.

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

SELECT codmat

FROM post

GROOUP BY codmat

HAVING COUNT(*)>1;

Выражение во фразе HAVING должно принимать единственное значение для группы. Формат COUNT(*) означает подсчет всех строк таблицы.

Задача.

Построить ER-модель. Предметной областью является общеобразовательная школа. Необходимо отразить текущую, четвертную и годовую успеваемость каждого учащегося, а также ведения о его посещаемости.

Билет №11

1 вопрос. Виды свойств и их отражение в реляционной БД.

Описание свойств объекта.

Разновидности свойств

Класс объектов представляет собой совокупность

объектов, обладающих одинаковым набором свойств. При описании предметной области нужно изобразить набор свойств, фиксируемых для объектов каждого из представленных в модели классов.

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

изображенный пунктирной линией.

Связь между объектом и характеризующим его свойством изображается

в виде линии, соединяющей их обозначения. Характер связи

между объектом и его свойством может быть различный. Объект

может обладать только одним значением какого-то свойства в каждый

момент времени. Например, каждый человек может иметь только

одну «Дату_рождения» или «Стаж_работы». Назовем такие свойства

единичными. Для других свойств возможно существование одновременно

нескольких значений у одного и того же объекта

(например, свойство «Иностранный_язык» у объекта СОТРУДНИК,

если СОТРУДНИК может владеть несколькими иностранными языками). Такое свойство будем называть множественным. При изображении

связи между объектом и его свойствами для единичных свойств

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

двойную стрелку на конце линии, соединяющей объект с данным свойством

(рис. 2.7, 2.8).

Рис. 2.7. Изображение объекта и его свойств (условные обозначения)

Значения некоторых свойств не может измениться с течением времени.

Назовем такие свойства статическими, а те свойства, значения

которых могут изменяться со временем, будем называть динамическими.

Для обозначения динамических свойств будем использовать

букву «Д», а статических - «С» над соответствующей линией. Так,

упомянутое выше свойство «Дата_рождения» будет являться статическим,

а «Стаж» - динамическим.

Рис. 2.8. Пример изображения единичных и множественных

динамических и статических свойств

Другой характеристикой связи между объектом и его свойством

является признак того, присутствует ли это свойство у всех объектов

данного класса либо оно может отсутствовать у некоторых объектов.

Например, для отдельных служащих может иметь место свойство

«Ученаястепень», а другие объекты этого класса могут не обладать

указанным свойством. Назовем свойства, присутствующие не у всех

объектов данного класса, условными. При изображении связи условного

свойства с объектом будем использовать пунктирную линию, а

если свойство определено для всех экземпляров объектов данного

класса - сплошную (см. рис. 2.7, 2.9).

личность

Рис. 2.9. Пример изображения условного свойства

Иногда в ER-модели бывает полезно ввести понятие составного

свойства. Примером такого свойства могут быть «Адрес», состоящий

из «Города», «Улицы», «Дома» и «Квартиры». Будем использовать для

обозначения составного свойства пунктирный квадрат, из которого

исходят линии, соединяющие его с обозначениями составляющих его

элементов (см. рис. 2.7, 2.11).





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



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