如何通过MySQL和python添加具有for循环的列?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (219)

我在MySQL中有一个查询:

SELECT 
    Identifier,
    SUM(Course_Credits) 
FROM 
    PredictiveAnalytics.PA_UCF_COURSES_TAKEN
WHERE 
    Enrollment_Term_Code = 1350 AND
    Course_Grade in ('A','B+','B','C+','C','C-') 
GROUP BY 
    Identifier;

此查询返回两个列的表,其中包括IdentifierSUM(Course_Credits)

我必须编写一个for循环代码,以便在每次迭代中将列添加到表中。迭代Enrollment_Term_Code被编码到上面的1350。

Enrollment_Term_CodeS包括1350、1370和1390。第一个表的对应代码是(与上面相同的查询):

data = pd.read_sql_query("SELECT Identifier, sum(Course_Credits) FROM PredictiveAnalytics.PA_UCF_COURSES_TAKEN where Enrollment_Term=1350 Course_Grade in ('A','B+','B','C+','C','C-') group by Identifier;", rconn)

如果有人指导我如何将另外两列添加到这个表中,我将不胜感激。

提问于
用户回答回答于

考虑到你的术语代码在列表中(让我们称之为term_codes),你可以遍历列表,并在每个术语代码中调用一次查询,如下所示:

sql_query = """SELECT 
    Identifier,
    SUM(Course_Credits) 
FROM 
    PredictiveAnalytics.PA_UCF_COURSES_TAKEN
WHERE 
    Enrollment_Term_Code = ? AND
    Course_Grade in ('A','B+','B','C+','C','C-') 
GROUP BY 
    Identifier;"""

term_codes = [1350, 1370, 1390]

for term_code in term_codes:
    data = pd.read_sql_query(sql_query, rconn, params=[term_code,])

扫码关注云+社区

领取腾讯云代金券