Это фрагмент кода Python3, который включает запрос SQLite.
Запрос выполняется без проблем в браузере SQLite, но при запуске из Python выдает следующие ошибки:
conn = sqlite3.connect('emaildb.sqlite')
cur = conn.cursor()
cur.execute('DROP TABLE IF EXISTS Counts')
cur.execute('CREATE TABLE Counts (org TEXT, count INTEGER)')
cur.execute('INSERT INTO Counts (org,count) SELECT SUBSTR(email, (SELECT INSTR(email,'@'))) AS org, SUM(count) as count FROM Em GROUP BY org ORDER BY count DESC')
rows = cur.fetchall()
for row in rows:
print(row)
Ошибка:
TypeError Traceback (последний вызов был последним) в () 5 cur.execute ('CREATE TABLE Count (org TEXT, count INTEGER)') ----> 6 cur.execute ('INSERT INTO Counts (org, count) SELECT SUBSTR(электронная почта, (ВЫБРАТЬ INSTR (электронная почта, '@'))) AS org, SUM (количество) как количество ОТ Em GROUP BY org ORDER BY count DESC ') 7 8 строк = cur.fetchall ()
Ошибка типа: неподдерживаемый тип (ы) операнда для @: 'str' и 'str'
Я нашел причину, но все же есть проблема ... она не должна заменять INSERT '"в начале и в конце вставки ..." INSERT ... DESC "
cur.execute (" INSERT INTO Считает (org, count) SELECT SUBSTR (электронная почта, (SELECT INSTR (электронная почта,'@'))) AS org, SUM (count) как count FROM Em GROUP BY org ORDER BY count DESC ').
но он не делает INSERT, есть идеи почему?