Для сортировки записей применяется оператор ORDER BY, добавляемый в конце запроса на выборку данных:
SELECT … ORDER BY <ключ1> [ASC|DESC], <ключ2> [ASC|DESC], …;
Названием ключа может быть название поля таблицы или его псевдоним. Команды ASC (Ascending − возрастающий) и DESC (Deescending − убывающий) определяют направление сортировки по каждому ключу. По умолчанию используется сортировка по возрастанию значений.
Для вывода списка студентов, отсортированного по фамилии, можно использовать запрос:
SELECT fio_stud, facultet, gr FROM student ORDER BY fio_stud ASC;
Для сортировки этих данных в порядке убывания номера группы –
SELECT fio_stud, facultet, gr FROM student ORDER BY gr DESC;
Можно использовать несколько ключей сортировки .
Например, список должен быть отсортирован по номерам зачеток, а затем – по дате и коду дисциплины
SELECT number,number_zach,kod_dis,kolvo_time,ball,tabel_prep,date FROM study
ORDER BY number_zach ASC, date DESC, kod_dis DESC;
Для групповой обработки записей применяется оператор GROUP BY, добавляемый в конце запроса на выборку данных. Данный оператор следует помещать перед оператором сортировки:
SELECT ... GROUP BY <ключ группировки>;
Оператор группировки применяется совместно с функциями групповой обработки данных (табл. 6).
Например,для подсчета измерений, выполненных каждым счетчиком, и суммарного значения всех измерений используется запрос:
SELECT sch_id, COUNT(sch_id), SUM(pokazanie) FROM pokazan
GROUP BY sch_id;
При добавлении сортировки по номеру счетчика получается запрос:
SELECT sch_id, COUNT(sch_id), SUM(pokazanie) FROM pokazan
GROUP BY sch_id ORDER BY sch_id;
Таблица 6
Функции групповой обработки данных
Функция
Описание
COUNT()
Количество записей
MAX()
Максимальное значение
MIN()
Минимальное значение
AVG()
Среднее значение
STDDEV_POP()
Среднеквадратичное отклонение (СКО)
SUM()
Сумма всех значений
Для получения максимального показания каждого счетчика в отсортированном виде применяются функция MAX() и оператор сортировки. При этом необходимо использовать псевдоним столбца MAX(pokazanie) для обеспечения возможности сортировки по этому полю (без использования псевдонима обозначить это поле в блоке ORDER BY невозможно):
SELECT sch_id, MAX(pokazanie) AS max_pokazanie FROM pokazan