|
TO_CHAR (значимое выражение [, символьный формат]) | Преобразование в символьную строку: § значимое значение – числовое выражение или значение типа дата-время; § для числовых значений символьный форма т должен иметь синтаксис [S]9[9][.9[9]], где S - представление знака числа, 9 - представление цифр-знаков числового значения. Символьный формат определяет вид отображения чисел. По умолчанию для числовых значений используется формат '999999.99'; § для значений типа дата-время символьный формат имеет вид: ‘DD:Mon:YY’ ‘DD-Mon-YYYY’ ‘MM/DD/YY’ ‘MM/DD/YYYY’ ‘DD.MM.YY’ ‘DD.MM.YYYY’ § Возвращаемое значение – символьное представление значимого выражения в соответствии с заданным символьным форматом преобразованния |
TO_NUMBER (значимое символьное выражение) | Преобразование из символьного значения в числовое. При этом, значимое символьное выражение должно задавать символьное значение числового типа. |
TO_DATE (значимое символьное выражение [, символьный формат]) | Преобразование символьной строки в дату. § значимое символьное выражение должно задавать символьное значение типа дата-время; § символьный формат должен описывать представление значения типа дата-время в значимом символьном выражении. Допустимые форматы приведены выше. § Возвращаемое значение - значимое символьное выражение во внутреннем представлении. Тип возвращаемого значения - дата-время |
CAST значимое выражение AS тип данных | Средство явного преобразования данных из одного типа данных в другой. |
24. Агрегирование и групповые функции. Упорядочение выходных полей.
Агрегирующие функции позволяют получать из таблицы сводную (агрегированную) информацию, выполняя операции над группой строк таблицы. Для задания в SELECT-запросе агрегирующих операций используются следующие ключевые слова:
COUNT – определяет количество строк или значений поля, выбранных посредством запроса и не являющихся NULL-значениями;
SUM – вычисляет арифметическую сумму всех выбранных значений поля;
AVG – вычисляет среднее значение для всех выбранных значений данного поля (в некоторых реализациях - AVERAGE);
MAX – вычисляет наибольшее из всех выбранных значений данного поля;
MIN – вычисляет наименьшее из всех выбранных значений данного поля;
В SELECT-запросе агрегирующие функции используются аналогично именам полей, при этом имена полей используются в качестве аргументов этих функций.
Пример. Определить среднего значения поля MARK по всем записям таблицы EXAM_MARK:
SELECT AVG (MARK)
FROM EXAM_MARK;
Пример. Подсчитать количество строк в таблице:
SELECT COUNT (*)
FROM EXAM_MARK;
Аргументы DISTINCT и ALL позволяют, соответственно, исключать и включать дубликаты обрабатываемых функцией COUNT значений.
Предложение GROUP BY (группировать по) позволяет группировать записи в подмножества, определяемые значениями какого-либо поля, и применять агрегирующие функции уже не ко всем записям таблицы, а раздельно к каждой сформированной группе.
Пример. Найти максимальное значение оценки полученной в результате экзаменов каждым студентом.
SELECT STUDENT_ID, MAX (MARK)
FROM EXAM_MARKS
GROUP BY STUDENT_ID;
Выбираемые из таблицы записи группируются по значениям идентификатора студента и для каждой группы находится максимальное значение поля MARK.
В конструкции GROUP BY для группирования может быть использовано более одного столбца.
Пример.
SELECT STUDENT_ID, SUBJ_ID, MAX (MARK)
FROM EXAM_MARKS
GROUP BY STUDENT_ID, SUBJ_ID;
В данном случае строки вначале группируются по значениям первого столбца, а внутри этих групп - в подгруппы по значениям второго столбца.
Таким образом, предложение GROUP BY не только устанавливает столбцы, по которым осуществляется группирование, но и указывает порядок разбиения столбцов на группы.
Замечание! В предложении GROUP BY должны быть указаны все выбираемые столбцы, приведенные после ключевого слова SELECT, кроме столбцов, указанных в качестве аргумента в агрегирующей функции.
При необходимости часть сформированных с помощью GROUP BY групп может быть исключена с помощью предложения HAVING.
Предложение HAVING определяет критерий, по которому группы следует включать в выходные данные, по аналогии с предложением WHERE, которое осуществляет это для отдельных строк.
Пример.
SELECT SUBJ_NAME, MAX (HOUR)
FROM SUBJECT
GROUP BY SUBJ_NAME
HAVING MAX (HOUR)>=72;
Замечание! В условии, задаваемом предложением HAVING, указывают только поля или выражения, которые на выходе имеют единственное значение для каждой выводимой группы.
Дата добавления: 2015-09-12; просмотров: 17 | Поможем написать вашу работу | Нарушение авторских прав |