КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
SQL-функцииВ SQL существует ряд специальных стандартных функций (SQL-функций). Кроме специального случая COUNT(*) каждая из этих функций оперирует совокупностью значений поля некоторой таблицы и создает единственное значение, определяемое так: • COUNT – подсчет количества записей, содержащихся в заданном поле запроса • SUM – вычисление суммы набора значений, содержащихся в заданном поле запроса • AVG – вычисление арифметического среднего набора чисел, содержащихся в указанном поле запроса • MAX – вычисление максимального значения из набора значений, содержащихся в указанном поле запроса • MIN – вычисление минимального значения из набора значений, содержащихся в указанном поле запроса Для функций SUM и AVG рассматриваемый столбец должен содержать числовые значения. Следует отметить, что здесь поле - это поле виртуальной таблицы, в которой могут содержаться данные не только из поля базовой таблицы, но и данные, полученные путем функционального преобразования и (или) связывания символами арифметических операций значений из одного или нескольких полей. При этом выражение, определяющее поле такой таблицы, может быть сколь угодно сложным, но не должно содержать SQL-функций (вложенность SQL-функций не допускается). Однако из SQL-функций можно составлять любые выражения. Аргументу всех функций, кроме COUNT(*), может предшествовать ключевое слово DISTINCT (различный), указывающее, что избыточные дублирующие значения должны быть исключены перед тем, как будет применяться функция. Специальная функция COUNT(*) служит для подсчета всех без исключения записей в таблице (включая дубликаты). 1. Посчитать количество поставщиков SELECT Count(*)AS Количество FROM Поставщики; Результат запроса
Если не используется фраза GROUP BY, то в перечень элементов_SELECT можно включать лишь SQL-функции или выражения, содержащие такие функции. Другими словами, нельзя иметь в списке столбцы, не являющихся аргументами SQL-функций.
2. Выдать данные о массе творога (КодПрод=8), поставленного поставщиками, и указать количество этих поставок SELECT Sum(КоличестовП) AS Вес, Count(КоличестовП) AS Количество FROM Поставки WHERE КодПрод = 8; Результат запроса
3. Рассчитать ежедневную сумму продаж продуктов и вес проданных продуктов SELECT ДатаПродажи, Sum([Количество]*[ЦенаПродажи]) AS СуммаПродажи FROM Продажи GROUP BY ДатаПродажи; Результат запроса
Фраза GROUP BY (группировать по) инициирует перекомпоновку указанной во FROM таблицы по группам, каждая из которых имеет одинаковые значения в поле, указанном в GROUP BY. В рассматриваемом примере записи таблицы Продажи группируются так, что в одной группе содержатся все записи с датой продажи ДатаПродажи = 25.03.03, в другой с датой продажи ДатаПродажи = 02.01.04 и т.д. (см. Таблицу 3-6). Далее к каждой группе применяется фраза SELECT. Каждое выражение в этой фразе должно принимать единственное значение для группы, т.е. оно может быть либо значением поля, указанного в GROUP BY, либо арифметическим выражением, включающим это значение, либо константой, либо одной из SQL-функций, которая оперирует всеми значениями поля в группе и сводит эти значения к единственному значению (например, к сумме).
|