📅  最后修改于: 2023-12-03 14:52:34.951000             🧑  作者: Mango
在SQLAlchemy中,可以使用查询(query)和聚合函数(aggregate functions)来从表中选择最小值和最大值。
要从表中选择最小值和最大值,首先需要查询表。
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
engine = create_engine('sqlite:///:memory:')
Base = declarative_base()
class Person(Base):
__tablename__ = 'person'
id = Column(Integer, primary_key=True)
name = Column(String)
age = Column(Integer)
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()
person1 = Person(name='Alice', age=25)
person2 = Person(name='Bob', age=30)
person3 = Person(name='Charlie', age=35)
session.add_all([person1, person2, person3])
session.commit()
result_set = session.query(Person).all()
上面的代码创建了一个Person类和一个表,将一些人添加到表中,并查询表。
要从表中选择最小值和最大值,请使用 SQLAlchemy的 min和max聚合函数。
from sqlalchemy import func
# 最小年龄
min_age = session.query(func.min(Person.age)).one()[0]
print(min_age)
# 最大年龄
max_age = session.query(func.max(Person.age)).one()[0]
print(max_age)
在上面的代码中,我们调用了min和max函数来选择年龄的最小值和最大值。
# 查询表
result_set = session.query(Person).all()
# 最小年龄
min_age = session.query(func.min(Person.age)).one()[0]
# 最大年龄
max_age = session.query(func.max(Person.age)).one()[0]
print(f"最小年龄: {min_age}")
print(f"最大年龄: {max_age}")
以上是按列分数从表中选择最小值和最大值的完整程序。注意,需要根据实际情况修改数据库的连接信息。