【发布时间】:2020-12-20 18:48:46
【问题描述】:
我有两个列表,result6 和 result7。 结果6看起来像这样:
(2, Decimal('2'))
(17, Decimal('1'))
(16, Decimal('0'))
(15, Decimal('1'))
(9, Decimal('0'))
(5, Decimal('1'))
(4, Decimal('2'))
(13, Decimal('2'))
(18, Decimal('0'))
(7, Decimal('0'))
(12, Decimal('0'))
(11, Decimal('0'))
(10, Decimal('0'))
(3, Decimal('1'))
(1, Decimal('1'))
(14, Decimal('0'))
(8, Decimal('1'))
(6, Decimal('0'))
结果 7 如下所示:
(2, Decimal('0'))
(17, Decimal('1'))
(16, Decimal('1'))
(15, Decimal('1'))
(9, Decimal('2'))
(5, Decimal('0'))
(4, Decimal('0'))
(13, Decimal('0'))
(18, Decimal('0'))
(7, Decimal('1'))
(12, Decimal('0'))
(11, Decimal('1'))
(10, Decimal('0'))
(3, Decimal('0'))
(1, Decimal('0'))
(14, Decimal('1'))
(8, Decimal('0'))
(6, Decimal('0'))
两个列表中的第一列是引用(用于团队),所以我想创建一个新列表(=result8),交换两列(因为 MYSQL 更新)并加在一起(它们的总和)result6和 result7 的十进制数字在 result8 的第一列。
my_sq14 = "SELECT H_code, SUM(Home_win) FROM bundesliga_2020_2021_2 GROUP BY H_code"
my_cursor.execute(my_sq14)
result6 = my_cursor.fetchall()
print("This is result6:")
for row in result6:
print(row)
my_sq15 = "SELECT H_code, SUM(Away_win) FROM bundesliga_2020_2021_2 GROUP BY H_code"
my_cursor.execute(my_sq15)
result7 = my_cursor.fetchall()
print("This is result7:")
for row in result7:
print(row)
result8 = []
while k < 18:
result8.append((result6[k][1], result6[k][0]))
k += 1
print("This is result8 first:")
for row in result8:
print(row)
while k < 18:
result8[k][0] = result6[k][1] + result7[k][1]
k += 1
print("This is result8 second:")
for row in result8:
print(row)
我没有收到错误,但什么也没发生,一切都保持不变,但例如在第 17 列,我需要在另一列上使用 2,而不是 1。 你能帮我吗,我哪里错了?
交换后的结果8:
This is result8 first:
(Decimal('2'), 2)
(Decimal('1'), 17)
(Decimal('0'), 16)
(Decimal('1'), 15)
(Decimal('0'), 9)
(Decimal('1'), 5)
(Decimal('2'), 4)
(Decimal('2'), 13)
(Decimal('0'), 18)
(Decimal('0'), 7)
(Decimal('0'), 12)
(Decimal('0'), 11)
(Decimal('0'), 10)
(Decimal('1'), 3)
(Decimal('1'), 1)
(Decimal('0'), 14)
(Decimal('1'), 8)
(Decimal('0'), 6)
尝试相加后的结果8:
This is result8 second:
(Decimal('2'), 2)
(Decimal('1'), 17)
(Decimal('0'), 16)
(Decimal('1'), 15)
(Decimal('0'), 9)
(Decimal('1'), 5)
(Decimal('2'), 4)
(Decimal('2'), 13)
(Decimal('0'), 18)
(Decimal('0'), 7)
(Decimal('0'), 12)
(Decimal('0'), 11)
(Decimal('0'), 10)
(Decimal('1'), 3)
(Decimal('1'), 1)
(Decimal('0'), 14)
(Decimal('1'), 8)
(Decimal('0'), 6)
【问题讨论】:
-
旁注:您并没有真正披露您的架构(您应该这样做)但名称
bundesliga_2020_2021_2让我猜猜该表存储了 2020 赛季德甲联赛的比赛结果/2021,可能是 2. 德甲。我猜还有其他表具有相同的架构但不同的季节和班级。如果这是真的,您应该修复您的架构。应该只有一个这样的表格,并且季节和班级应该在该表格的列中表示。关系表不是电子表格,它们代表关系。 -
我的模式是这样的:一个赛季中的一个冠军(现在是德甲)所有的比赛(但只是德甲 1.)在一张桌子上。有错吗?
-
如果下一季将进入另一张桌子,那么是的,那是错误的。如果都在一个表中就可以了,只是表名有点误导。
标签: python mysql sql count sum