РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
454 of 711 menu

Функция func.avg

Функция func.avg создает SQL-выражение для вычисления среднего арифметического значения по указанному столбцу. Функция принимает столбец или выражение, по которому нужно рассчитать среднее. Возвращает объект SQL-выражения, который можно использовать в запросах выборки. Обычно применяется совместно с функциями группировки и агрегации.

Синтаксис

func.avg(column)

Пример

Давайте создадим таблицу с товарами и вычислим среднюю цену всех товаров:

from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData, select, func engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('num', Integer) ) metadata.create_all(engine) with engine.connect() as conn: conn.execute(articles.insert(), [ {'title': 'article 1', 'num': 10}, {'title': 'article 2', 'num': 20}, {'title': 'article 3', 'num': 30} ]) conn.commit() stmt = select(func.avg(articles.c.num)) res = conn.execute(stmt).scalar() print(res)

Результат выполнения кода:

20.0

Пример

Давайте вычислим среднее значение с использованием группировки по статусу:

from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData, select, func engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('status', String), Column('num', Integer) ) metadata.create_all(engine) with engine.connect() as conn: conn.execute(articles.insert(), [ {'title': 'article 1', 'status': 'active', 'num': 10}, {'title': 'article 2', 'status': 'active', 'num': 20}, {'title': 'article 3', 'status': 'archive', 'num': 30} ]) conn.commit() stmt = select(articles.c.status, func.avg(articles.c.num)).group_by(articles.c.status) res = conn.execute(stmt).fetchall() print(res)

Результат выполнения кода:

[('active', 15.0), ('archive', 30.0)]

Пример

Давайте используем псевдоним для результата вычисления среднего значения:

from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData, select, func engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('num', Integer) ) metadata.create_all(engine) with engine.connect() as conn: conn.execute(articles.insert(), [ {'title': 'article 1', 'num': 5}, {'title': 'article 2', 'num': 15}, {'title': 'article 3', 'num': 25} ]) conn.commit() stmt = select(func.avg(articles.c.num).label('avg_num')) res = conn.execute(stmt).scalar() print(res)

Результат выполнения кода:

15.0

Смотрите также

  • функцию func,
    которая создает вызов произвольной SQL-функции
  • функцию func.sum,
    которая вычисляет сумму значений
  • функцию func.count,
    которая подсчитывает количество строк
  • функцию label,
    которая задает псевдоним для столбца
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить