кодесурса
«SQL

SQL AVG () функция

script1adsense2code
script1adsense3code

Функция AVG ()

Функция SQL AVG () вычисляет среднее значение столбца числового типа. Возвращает среднее значение всех ненулевых значений

Синтаксис:

 AVG (выражение [ALL | DISTINCT]) 

Поддержка СУБД: функция COUNT ()

СУБД команда
MySQL поддержанный
PostgreSQL поддержанный
SQL Server поддержанный
оракул поддержанный

Синтаксис DB2 и Oracle:

 AVG ([ALL | DISTINCT] выражение) OVER ( window_clause ) 

Параметры:

название Описание
ВСЕ Относится ко всем значениям.
DISTINCT Вернуть сумму уникальных значений.
выражение Выражение состоит из одной константы, переменной, скалярной функции или имени столбца. Выражение является выражением категории точных числовых или приблизительных числовых типов данных, за исключением типа битовых данных. Агрегатные функции и подзапросы не допускаются.

Синтаксическая диаграмма - функция AVERAGE ()


Пример:

Чтобы получить данные среднего значения 'advance_amount' из таблицы 'orders', можно использовать следующий оператор SQL:

SELECT AVG( advance_amount )
FROM orders;

Пример таблицы: заказы


Выход:

 Среднее (ADVANCE_AMOUNT)
-------------------
         629.166667

Иллюстрированная презентация:

«SQL

SQL AVG () с нулевым

Чтобы получить данные «agent_code», сумму «creation_amt», количество клиентов для каждого агента и «receive_amt» из таблицы «customer», можно использовать следующую инструкцию SQL:

SELECT agent_code, SUM (opening_amt), 
COUNT(*), ROUND(SUM (opening_amt) /COUNT(*)) AS MYAVG, 
ROUND(AVG (opening_amt)) AS SQLAVG 
FROM customer 
GROUP BY agent_code;

Образец таблицы: клиент


Выход:

 AGENT_CODE SUM (OPENING_AMT) COUNT (*) MYAVG SQLAVG
---------- ---------------- ---------- ---------- ---- ------
A002 22000 3 7333 7333
A004 25000 3 8333 8333
A007 16000 2 8000 8000
A009 6000 1 6000 6000
A011 5000 1 5000 5000
A012 5000 1 5000 5000
A010 22000 3 7333 7333
A001 8000 1 8000 8000
A008 13000 3 4333 4333
A006 8000 2 4000 4000
A005 19000 3 6333 6333
A003 12000 2 6000 6000

SQL AVG () с где

Чтобы получить среднее значение 'advance_amount' из таблицы 'orders' при следующих условиях -

1. «ord_amount» должно быть больше 1000,

2. и значение ord_amount должно быть до 4500,

можно использовать следующий оператор SQL:

SELECT AVG( advance_amount) 
FROM orders 
WHERE ord_amount>1000 AND ord_amount <= 4500;

Пример таблицы: заказы


Выход:

 Среднее (ADVANCE_AMOUNT)
-------------------
                800

Иллюстрированная презентация:

«SQL

SQL AVG () с SUM ()

Чтобы получить сумму 'advance_amount' и среднего значения 'advance_amount' из таблицы 'orders', можно использовать следующий оператор SQL:

 ВЫБЕРИТЕ СУММУ (advance_amount), AVG (advance_amount)
ОТ заказов; 

Пример таблицы: заказы


Выход:

 SUM (ADVANCE_AMOUNT) AVG (ADVANCE_AMOUNT)
------------------- -------------------
              22650 629,166667

Примечание. Выводы указанного оператора SQL, показанного здесь, взяты с использованием Oracle Database 10g Express Edition.

Вот слайд-презентация всех агрегатных функций.

Упражнения по SQL

Хотите улучшить вышеуказанную статью? Вносите свои заметки / комментарии / примеры через Disqus.

Предыдущая: СУММА И СЧЕТ, используя переменную и внутреннее соединение
Next: Средние десятичные знаки с использованием Cast внутри и снаружи avg

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code