Price FROM flat ORDER BY Room, Price DESC, 5
При выполнении данного запроса выводятся записи таблицы flat.db,в которой содержатся сведения о предлагаемых на продажу квартирах. Записи сортируются следующим образом. Вначале происходит сортировка в зависимости от количества комнат, то есть по возрастанию значений поля Room.Затем записи, у которых совпадает количество комнат, сортируются по убыванию стоимости квартиры (значения поля Price).И, наконец, записи, у которых одинакова комбинация значений полей Roomи Price,упорядочиваются по возрастанию пятого поля из списка полей в разделе SELECT.Пятым полем в списке является поле Square,которое содержит данные о площади квартиры. Результат может выглядеть примерно так, как это показано на рис. 15.2.
Агрегатные функции. В SQL-запросах предусмотрено использование так называемых агрегатных функций, которые позволяют получать некоторую общую величину, которая рассчитывается на основе всех значений набора данных или определенной группы записей. В SQL существуют следующие агрегатные функции:
■ COUNT (выражение) - подсчитывает число вхождений заданного выражения во все записи результирующего набора данных;
SUM (выражение) - определяет общую сумму значений, определяемых параметром выражение;
■ AVG (выражение) -вычисляет среднее значение;
■ МАХ (выражение) - находит максимальное значение;
MIN (выражение) - определяет минимальное значение
Ниже приводятся примеры создания запросов с использованием агрегатных функций.
SELECT COUNT(DISTINCT Name)
FROM firm
WHERE Dolgn = 'Водитель'
В результате выполнения этого запроса выводится количество неповторяющихся и непустых значений поля Nameдля всех записей таблицы firm,у которых значение поля Dolgnравно «Водитель». Другими словами, подсчитывается количество водителей, работающих в данной фирме.
SELECT SUM(Price*Kolvo)
FROM shop
WHERE Date=ll.08.99
Результатом выполнения данного оператора является общая сумма денег, вырученная магазином за день. Она рассчитывается путем суммирования произведений значения поля Цена (Price)на значение поля Количество (Kolvo)для всех записей таблицы shop,у которых значение поля Dateравно 11.08.99.
SELECT MAX(Salary) FROM firm
Вышеприведенный запрос выводит максимальное значение поля Salaryсреди всех записей таблицы firm(т.е. определяется размер максимальной заработной платы среди всех сотрудников фирмы).
Группирование записей. Группирование данных используется, главным образом, в ситуациях, когда необходимо получить агрегированные значения (минимум, максимум, среднее, сумма, количество) не по всему набору данных, а по каждой из входящих в него групп записей, характеризующихся одинаковым значением какого-либо поля. Например, следующий запрос позволяет получить общее количество сотрудников по каждому отделу фирмы.
SELECT Otdel, COUNT(Tab_nom) FROM firm GROUP BY Otdel
В ряде случаев необходимо установить некоторые ограничения на группируемые значения. Для этого применяется операнд HAVING.К примеру, если в предыдущем примере требуется вывести только те отделы, в которых количество сотрудников более 10, то это можно осуществить с помощью запроса такого вида:
Дата добавления: 2014-12-01; просмотров: 1143;