У меня проблемы с этой строкой кода.По сути, я хочу добавить столбец в базу данных (SQL LITE) и использовать SQL внутри Python, чтобы добавить этот столбец, пока он не достигнет определенного значения, и указать имя человека, которым он достигает этого значения.
Я использовал целую кучу разных порядков команд, например, и изменил порядок столбцов, перечисленных в приведенном ниже утверждении, что не помогло, так что это тот, в котором я добился наибольшего прогрессас.
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% в порядке от AZ.
У меня есть сумма всего столбца (в процентах), используя:
c.execute('SELECT SUM(Percentage) FROM Users')
rows = c.fetchall()
print('The boys who had a frequency of over 50% was...')
print(rows)
Это не то, что я хочу, так что теперь я застрял.Моя база данных состоит из 1000 строк, поэтому я не могу показать все это на рисунке, но это то, что у меня есть:
Пример моей базы данных Примерстрока кода
Надеюсь, я предоставил все изображения, которые понадобятся.
Что я хочу сделать, так это то, что оператор SQL идет вниз по столбцу «Процент» из моей базы данных и добавляет все числа, пока не достигнет значения .5000, и выводит фамилию, которую он добавил, когдаэто достигло .5000 отсчета.Вместо этого происходит то, что он распечатывает все имена мальчиков, которые выше .5000 в порядке AZ.Я думаю, что это потому, что оператор group by группирует его по именам, которые имеют более. 5000 для своего процента.