mache erst einmal eine Pause vielleicht hilft das

McAce
Code: Alles auswählen
DELETE FROM testt WHERE name || dat NOT IN (SELECT name || MAX(dat) FROM testt GROUP BY name)
Code: Alles auswählen
import sqlite3
con = sqlite3.connect(':memory:')
cursor = con.cursor()
cursor.execute("CREATE TABLE test (name VARCHAR, dat DATE)")
cursor.execute("INSERT INTO test (name, dat) VALUES ('a', date('2011-02-15'))")
cursor.execute("INSERT INTO test (name, dat) VALUES ('a', date('2011-02-20'))")
cursor.execute("INSERT INTO test (name, dat) VALUES ('a', date('2011-04-11'))")
cursor.execute("INSERT INTO test (name, dat) VALUES ('v', date('2011-01-08'))")
cursor.execute("INSERT INTO test (name, dat) VALUES ('v', date('2011-04-16'))")
cursor.execute("INSERT INTO test (name, dat) VALUES ('v', date('2011-07-18'))")
cursor.execute("INSERT INTO test (name, dat) VALUES ('b', date('2011-02-01'))")
cursor.execute("INSERT INTO test (name, dat) VALUES ('b', date('2011-02-03'))")
cursor.execute("INSERT INTO test (name, dat) VALUES ('l', date('2011-02-04'))")
cursor.execute("INSERT INTO test (name, dat) VALUES ('m', date('2011-02-05'))")
cursor.execute("INSERT INTO test (name, dat) VALUES ('m', date('2011-02-06'))")
print "Vorher:"
for t in cursor.execute("SELECT * FROM test"): print t
print "----"
deletequery = "DELETE FROM test WHERE name || dat NOT IN " \
"(SELECT name || MAX(dat) FROM test GROUP BY name)"
cursor.execute(deletequery)
print "Nachher:"
for t in cursor.execute("SELECT * FROM test"): print t
cursor.close()
con.close()
Code: Alles auswählen
import sqlite3
import random
con = sqlite3.connect(':memory:')
cursor = con.cursor()
cursor.execute("CREATE TABLE test (n VARCHAR, d FLOAT)")
cursor.execute("INSERT INTO test (n, d) VALUES ('a', ?)", (random.random(),) )
cursor.execute("INSERT INTO test (n, d) VALUES ('a', ?)", (random.random(),) )
cursor.execute("INSERT INTO test (n, d) VALUES ('a', ?)", (random.random(),) )
cursor.execute("INSERT INTO test (n, d) VALUES ('v', ?)", (random.random(),) )
cursor.execute("INSERT INTO test (n, d) VALUES ('v', ?)", (random.random(),) )
cursor.execute("INSERT INTO test (n, d) VALUES ('v', ?)", (random.random(),) )
cursor.execute("INSERT INTO test (n, d) VALUES ('b', ?)", (random.random(),) )
cursor.execute("INSERT INTO test (n, d) VALUES ('b', ?)", (random.random(),) )
cursor.execute("INSERT INTO test (n, d) VALUES ('l', ?)", (random.random(),) )
cursor.execute("INSERT INTO test (n, d) VALUES ('m', ?)", (random.random(),) )
cursor.execute("INSERT INTO test (n, d) VALUES ('m', ?)", (random.random(),) )
print "Vorher:"
for t in cursor.execute("SELECT * FROM test"): print t
print "----"
deletequery = "DELETE FROM test WHERE n || d NOT IN " \
"(SELECT n || MAX(d) FROM test GROUP BY n)"
cursor.execute(deletequery)
print "Nachher:"
for t in cursor.execute("SELECT * FROM test"): print t
cursor.close()
con.close()
Code: Alles auswählen
Vorher:
(u'a', 0.06153580392253222)
(u'a', 0.17540563549178978)
(u'a', 0.6532116785416114)
(u'v', 0.7049099555607308)
(u'v', 0.0660415757282301)
(u'v', 0.5568942848148242)
(u'b', 0.7574893473574899)
(u'b', 0.8842254785434168)
(u'l', 0.5659690705623256)
(u'm', 0.2888894289300361)
(u'm', 0.07183194624757139)
----
Nachher:
(u'a', 0.6532116785416114)
(u'v', 0.7049099555607308)
(u'b', 0.8842254785434168)
(u'l', 0.5659690705623256)
(u'm', 0.2888894289300361)
Code: Alles auswählen
import sqlite3
con = sqlite3.connect(':memory:')
cur = con.cursor()
cur.execute("CREATE TABLE test (id INTEGER PRIMARY KEY, dat INTEGER)")
cur.execute('INSERT INTO test (dat) VALUES (?)', (2,))
cur.execute('INSERT INTO test (dat) VALUES (?)', (144,))
cur.execute('INSERT INTO test (dat) VALUES (?)', (3.144,))
cur.execute('INSERT INTO test (dat) VALUES (?)', ('KEKS',))
print cur.execute("SELECT * FROM test").fetchall()
cur.close()
con.close()
Code: Alles auswählen
[(1, 2), (2, 144), (3, 3.144), (4, u'KEKS')]