我在这行代码中遇到了问题。基本上,我要做的是在数据库(SQL LITE)中添加一列,然后在Python中使用SQL添加该列,直到它达到某个值,并说明达到该值的人员的姓名。
我已经使用了一大堆不同顺序的命令,如和,改变了下面语句中列出的列的顺序,这没有什么帮助,所以这是我在使用中取得最大进展的一个。
import sqlite3
conn = sqlite3.connect("Boys.db")
c = conn.cursor()
# Creating the table
class Table:
c.execute('''CREATE TABLE IF NOT EXISTS Users (Rank INTEGER, Name INTEGER, TotalB INTEGER, Percentage INTEGER)
''')
c.execute('SELECT Name FROM Users GROUP BY Name HAVING SUM(Percentage)
> .5000')
rows = c.fetchall()
print('The boys who had a frequency of over 50% was...')
print(rows)
conn.commit()
# Loading in the csv data
csvfile = open('BoysCSVfromText.csv', 'r')
creader = csv.reader(csvfile)
for t in creader:
c.execute('INSERT INTO Users VALUES(?,?,?,?)', t)
conn.close()
该语句打印出所有百分比超过50%的男孩的名字,并按A-Z顺序排列。
我有整个列的总和(百分比),使用:
c.execute('SELECT SUM(Percentage) FROM Users')
rows = c.fetchall()
print('The boys who had a frequency of over 50% was...')
print(rows)
这不是我想要的所以现在我被卡住了。我的数据库有1000行,所以我不能在一张图片中包含所有内容,但到目前为止我所拥有的是:
Example of my database Example of the line of code
希望我已经提供了所需的所有图像。
我想要发生的是,SQL语句从我的数据库中的"Percentage“列向下移动,将所有数字相加,直到它达到值.5000,并打印出它在达到.5000计数时添加的姓氏。相反,它会以A-Z的顺序打印出所有高于.5000的男孩名字。我认为这是因为group by语句按其百分比超过.5000的名称对其进行了分组。
https://stackoverflow.com/questions/56518146
复制相似问题