|
|||||
Сортировка и группировка строк таблицыДата добавления: 2014-11-24 | Просмотров: 1561
ПредложениеORDER BY позволяет установить желаемый порядок просмотра результирующей таблицы (отсортировать таблицу). Фактически задается список столбцов результирующей таблицы, и для каждого столбца указывается порядок просмотра строк результата в зависимости от значений этого столбца (ASC - по возрастанию (умолчание), DESC - по убыванию). Столбцы можно задавать их именами тогда и только тогда, когда в списке выборки в предложении SELECT этому столбцу соответствует арифметическое выражение, состоящее только из имени столбца. Во всех остальных случаях в разделе ORDER BY должен указываться порядковый номер столбца в таблице-результате. Ø SELECT <список выборки> FROM <таблицы> ORDER BY <столбец / целое число> [ASC / ESC] [ ,<столбец/ целое число>[ASC/ESC]...]; Пример. Вывести список заказчиков в алфавитном порядке фамилий: SELECT Номер_заказчика, Фамилия_заказчика FROM Заказчики ORDER BY 2; ПредложениеGROUP BY позволяет объединить строки результирующей таблицы в группы с одинаковыми значениями столбцов. Если R - это таблица, являющаяся результатом предыдущего раздела (FROM или WHERE), то результатом раздела GROUP BY является разбиение R на множество групп строк. Это множество состоит из минимального числа таких групп, в которых для каждого столбца из списка столбцов раздела GROUP BY во всех строках каждой группы, включающей более одной строки, значения этого столбца совпадают. Пример. Вывести номера, описание и количество товара, объединенные в группы с совпадающими описаниями товара. SELECT Номер, Описание, Количество FROM Товар GROUP BY Описание; Условие поиска предложенияHAVING задает условие на группу строк сгруппированной таблицы. Условие поиска предложения HAVING строится по тем же синтаксическим правилам, что и условие поиска предложения WHERE, и может включать те же самые предикаты.! (см. п. 2.3.). Однако в арифметических выражениях предикатов, входящих в условие выборки предложения HAVING, прямо можно использовать только столбцы, указанные в качестве столбцов группирования в разделе GROUP BY. Остальные столбцы можно использовать только внутри спецификаций агрегатных функций COUNT, SUM, AVG, MIN и MAX, вычисляющих в данном случае некоторое агрегатное значение для всей группы строк. Например, нельзя писать SELECT Номер_Продавца, МАХ(Сумма) FROM Заказы GROUP BY Номер_Продавца HAVING Дата_3аказа='10.03.98'; для вывода наибольшей суммы, полученной каждым Продавцом 10 марта. Поле Дата Заказа нельзя использовать в предложении HAVING, т.к. оно может иметь больше чем одно значение на группу вывода. Правильно записывается SELECT Номер_Продавца, МАХ(Сумма) FROM Заказы WHERE Дата_3аказа=' 10.03.98' GROUP BY Номер Продавца; Результатом выполнения предложения HAVING является сгруппированная таблица, содержащая только те группы строк, дли которых выполняется условие поиска. |
При использовании материала ссылка на сайт Конспекта.Нет обязательна! (0.048 сек.) |