ВУЗ:
Составители:
Рубрика:
− COUNT (<выражение>) – подсчитывает число вхождений значения выражения во все записи ре-
зультирующего списка;
− SUM (<выражение>) – суммирует значение выражения;
− AVG (<выражение>) – находит среднее значение;
− MAX (<выражение>) – определяет максимальное значение;
− MIN (<выражение>) – определяет минимальное значение.
Например, необходимо вычислить общую стоимость оприходованных деталей за дату "4.10.00":
SELECT sum (p.kolvo * d.zena_ed) AS itogo
FROM prihod p, detal d
WHERE (p.name_det=t.name_det)AND(p.date_prihod= "04.10.2000");
Для группы записей столбца, характеризующих одинаковые значения, можно получить агреги-
рованные значения (MIN, MAX, AVG). При этом один из столбцов представляется агрегирующей
функцией и предложение GROUP BY <столбец1> [, <столбец2> …] ставится вместе с предложением
WHERE.
На группировку записей можно наложить ограничения. Агрегация выдается только по группам,
удовлетворяющим условию. Синтаксис такого выражения в команде SELECT выглядит следующим
образом:
GROUP BY <имя столбца> HAVING <агрегирующая функция> <отношение> <константа>;
Часто возникает ситуация, связанная с тем, что невозможно решить поставленную задачу путем
использования единственного запроса. Например, в тех случаях, когда при использовании условия
поиска в предложении WHERE значение с которым надо сравнить, далее не определено, а вычисля-
ется оператором SELECT. В таких случаях применяют вложенные запросы или подзапросы. Опера-
тор SELECT имеет вид:
SELECT …
FROM …
WHERE <сравниваемое значение> <оператор SELECT >;
Оператор SELECT возвращает не одно значение, а список, поэтому может возникнуть ошибка.
Чтобы ее избежать, надо заменить операцию отношения "=" на оператор выбора из нескольких воз-
можных значений IN. Синтаксис вложенного запроса ничем не отличается от синтаксиса основного
запроса. Это значит, что в подзапрос может быть вложен другой подзапрос и т.д.
Внешние соединения определяются в предложении FROM согласно спецификации:
SELECT {* | <значение1> [, <значение2>…]}
FROM <таблица1> <вид соединения > JOIN < таблица2>
ON <условие поиска>;
Внешнее соединение отличается от внутреннего тем, что в результирующий список включаются
записи ведущей таблицы соединения, которые объединяются с пустым множеством записей другой
таблицы. Какая из таблиц будет ведущей, определяет вид соединения (LEFT – левое внешнее со-
единение, ведущая <таблица1>; RIGHT – правое внешнее соединение, ведущая <таблица2>; FULL –
полное внешнее соединение). В случае полного внешнего соединения ведущими являются обе таб-
лицы. В результирующий список включаются все записи обеих таблиц согласно алгоритму:
1) если для записи <таблицы1> имеются записи в <таблицы2>, удовлетворяющие условию соеди-
нения, то в результирующий список включаются все комбинации записей обеих таблиц;
2) в противном случае в результат включается запись <таблицы1>, соединенная с пустой записью
<таблицы2>;
3) пункты 1 и 2 повторяются для таблицы 2 и таблицы 1.
В запросах к базе данных эта операция может быть использована, например, когда требуется
найти поставщика, соответствующего каждой поставке детали или найти все поставки по каждому
поставщику и т.п.
Страницы
- « первая
- ‹ предыдущая
- …
- 45
- 46
- 47
- 48
- 49
- …
- следующая ›
- последняя »