· списка отделений компании, которые предлагают трехкомнатные квартиры c телефонами;
FROM BRANCH INNER JOIN PROPERTY ON BRANCH.Branch_no=PROPERTY.Branch_no
WHERE (PROPERTY.Rooms=3) AND (PROPERTY.Ptel=’T’);
· списка шифров владельцев собственности (Owner_no), предлагающих несколько трехкомнатных квартир для продажи;
WHERE a.Owner_no=b.Owner_no AND
a.Property_no<>b.Property_no AND
a.Rooms=3 AND b.Rooms=3;
В запросе используются псевдонимы a и b таблицы PROPERTY, так как для выполнения запроса необходимо оценить равенство поля Owner_no в двух экземплярах одной и той же таблицы.
Раздел GROUP BY используется для создания итоговых запросов. Итоговые запросы имеют одно общее свойство: в предложении SELECT таких запросов используется, по крайней мере, одна агрегатная функция (AVG, COUNT (количество непустых значений в данном столбце), SUM, MIN, MAX, FIRST (значение столбца из первой строки результирующего набора записей), LAST(значение столбца из последней строки результирующего набора записей) и др.). Агрегатные функции используются подобно именам полей в операторе SELECT, но с одним исключением: они берут имя поля как аргумент. С функциями SUM и AVG могут использоваться только числовые поля. С функциями COUNT, MAX и MIN могут использоваться как числовые, так и символьные поля.
Синтаксис: GROUP BY < имя_столбца>
Имя столбца – имя любого столбца из любой из упомянутой в разделе FROM таблицы.
Если GROUP BY расположено после WHERE создаются группы из строк, выбранных после применения раздела WHERE.
При включении раздела GROUP BY в инструкцию SELECT список полей должен состоять из итоговых функций SQL (AVG,COUNT, MAX,MIN,SUM и др.) и из имен столбцов, указанных в разделе GROUP BY. В раздел GROUP BY должны быть включены все атрибуты, входящие в раздел SELECT.
В предложение GROUP BY могут быть указаны одновременно несколько столбцов. Группы при этом определяются слева направо. Предложение GROUP BY автоматически устанавливает сортировку по возрастанию (если надо по убыванию – задать в ORDER BY).
Создать итоговые запросы:
· Вычисления средней зарплаты сотрудников по каждому из отделений компании;