在 SQLAlchemy 中对多列求和
在本文中,我们将使用Python的 SQLAlchemy 模块对多列求和并获得结果。
安装
要安装 SQLAlchemy 模块,请在终端中运行以下命令:
pip install sqlalchemy pymysql
注意: pymysql 是我们需要为这篇文章安装的 SQLAlchemy 的依赖项。
所以,我们要做的是,首先我们将使用 SQLAlchemy 模块连接数据库,然后使用我们的 SQL 和Python技能,我们需要对多个列的值求和并得到结果。
使用的数据库:
因此,对于这篇文章,我们将找出所有玩家的总得分。我们可以通过将玩家表的“score1”、“score2”和“score3”列相加来做到这一点。
方法 1:首先,我们需要使用 SQLAlchemy 创建与数据库的连接。然后我们将对表执行“SELECT”查询,并在其中添加列。最后,我们将获取结果。
SQL 查询将如下所示:
SELECT column1 + column2 + .... + columnN FROM table_name;
您可以添加任何编号。你想要的列。只需以上述方式指定它们。
Python代码将如下所示:
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'
column1 = 'score1'
column2 = 'score2'
column3 = 'score3'
result = connection.execute(
f'SELECT {column1} + {column2} + {column3} FROM {table_name}')
for value in result:
sum_value = value[0]
print("Sum : ",sum_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'
column1 = 'score1'
column2 = 'score2'
column3 = 'score3'
result = connection.execute(
f'SELECT {column1} , {column2} , {column3} FROM {table_name}')
for value in result:
print("Values of one row :", value)
sum_value = sum(value)
print("Sum : ", sum_value)
方法 2:执行相同任务的另一种方法是运行普通的“SELECT”查询并提及我们要在查询中添加的所有列。然后我们将获取结果并在其上运行一个 for 循环。结果的元素将是一个元组,其中包含单行的所有列的值,我们将它们相加得到它们的总和。
SQL 查询将如下所示:
SELECT column1 , column2 , .... , columnN FROM table_name;
例子:
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'
column1 = 'score1'
column2 = 'score2'
column3 = 'score3'
result = connection.execute(
f'SELECT {column1} , {column2} , {column3} FROM {table_name}')
for value in result:
print("Values of one row :", value)
sum_value = sum(value)
print("Sum : ", sum_value)