如何在 SQLAchemy 中按列分数从表中选择最小值和最大值?
在本文中,我们将使用 SQLAlchemy 模块从 SQL 表中的列分数中获取最小值和最大值。
SQLAlchemy 是一个很棒且易于使用的Python模块,用于连接 SQL 并在Python中使用 SQL 的特性和功能。在这里,我们提供了一个表,其中包含一个名为“ score ”的列,我们的任务是找出存储在该列中的最大值和最小值。
安装
对于您需要安装 SQLAlchemy 模块的任务,您可以通过以下命令安装该模块:
pip install SQLAlchemy pymysql
注意: pymysql 是我们需要为这篇文章安装的 SQLAlchemy 的依赖项。
使用的数据库:
如您所见,在我们的玩家表中,分数的最小值和最大值分别为 52 和 100,我们的任务是在我们的Python代码中获取这些值。在这篇文章中,我们将通过 2 种方法完成任务:
- 使用 SQL 的最小值和最大值
- 使用Python的最小值和最大值
上述两种方法对于执行我们的任务都非常简单和有用。但首先,让我们从连接数据库开始。
方法一:使用 SQL 的 min 和 max
让我们使用在其中运行 min 和 max函数的连接对象(上面创建)运行选择查询。
例子:
Python3
from sqlalchemy import create_engine
user , password , host , database = 'root' , '123' , 'localhost' , 'geeksforgeeks'
engine = create_engine(url=f'mysql+pymysql://{user}:{password}@{host}/{database}?charset=utf8')
connection = engine.connect()
table_name = 'players'
result = connection.execute(f'SELECT MIN(score) , MAX(score) FROM {table_name}')
min_value = None
max_value = None
for elem in result:
min_value = elem[0]
max_value = elem[1]
print('Min value : ',min_value)
print('Max value : ',max_value)
Python3
from sqlalchemy import create_engine
user, password, host, database = 'root', '123', 'localhost', 'geeksforgeeks'
engine = create_engine(
url=f'mysql+pymysql://{user}:{password}@{host}/{database}?charset=utf8')
connection = engine.connect()
table_name = 'players'
result = connection.execute(f'SELECT score FROM {table_name}')
all_values = []
for elem in result:
all_values.append(elem[0])
min_value = min(all_values)
max_value = max(all_values)
print('Min value : ', min_value)
print('Max value : ', max_value)
结果中的元素存储了两个值。第一个值是最小值,第二个值是列分数的最大值。
输出:
方法2:使用Python的最小值和最大值
对于这种方法,我们将首先通过以下代码获取所有值,将它们存储在一个列表中,然后在该列表上运行Python的 min 和 max函数。
Python3
from sqlalchemy import create_engine
user, password, host, database = 'root', '123', 'localhost', 'geeksforgeeks'
engine = create_engine(
url=f'mysql+pymysql://{user}:{password}@{host}/{database}?charset=utf8')
connection = engine.connect()
table_name = 'players'
result = connection.execute(f'SELECT score FROM {table_name}')
all_values = []
for elem in result:
all_values.append(elem[0])
min_value = min(all_values)
max_value = max(all_values)
print('Min value : ', min_value)
print('Max value : ', max_value)
输出: