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

Функция func.min

Функция func.min создает агрегатную SQL-функцию MIN, которая возвращает наименьшее значение в указанной колонке. Первым параметром функция принимает колонку или выражение, по которому нужно найти минимум. Обычно применяется в конструкции select вместе с группировкой или без нее.

Синтаксис

func.min(column)

Пример

Давайте найдем минимальное значение колонки num в таблице articles:

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

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

10

Пример

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

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, select, func engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('text', String), Column('status', String), Column('num', Integer), ) metadata.create_all(engine) with engine.begin() as conn: conn.execute(articles.insert(), [ {'title': 'article 1', 'text': 'text 1', 'status': 'published', 'num': 30}, {'title': 'article 2', 'text': 'text 2', 'status': 'draft', 'num': 10}, {'title': 'article 3', 'text': 'text 3', 'status': 'published', 'num': 20}, ]) with engine.connect() as conn: query = select(func.min(articles.c.num).label('min_num')) res = conn.execute(query).fetchone() print(res)

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

(10,)

Пример

Давайте найдем минимальное значение колонки num для каждой группы по колонке status с помощью group_by:

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

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

[('draft', 10), ('published', 20)]

Пример

Давайте посмотрим, какой SQL-запрос генерирует функция func.min:

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, select, func engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('text', String), Column('status', String), Column('num', Integer), ) query = select(func.min(articles.c.num)) print(query)

Итоговый SQL запрос:

SELECT min(articles.num) AS min_1 FROM articles

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

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