我有一个表格,我保存所有电子邮件地址,另一个表格用于保存电子邮件域及其在第一个表格中的出现。每天都会在第一个表中添加新电子邮件,并在第二个表中更新新统计信息。
这是第一张表:
CREATE TABLE mailing (
addr VARCHAR(255) NOT NULL
);
我还在第二张桌子上工作,它目前只能节省2天的统计数据:
CREATE TABLE daily_stat(
domain VARCHAR(255) NOT NULL,
prev_count INT,
cur_count INT,
day_count INT )
prev_count是昨天发生的,cur_count是今天发生的。 每天,第二个表由两个函数更新:
def insert(con,domain,cur_count):
try:
cursor = con.cursor()
cursor.execute("INSERT INTO daily_stat VALUES('%s' ,'%d','%d','%d' )" %(domain,0,cur_count,0))
con.commit()
except mdb.Error, e:
con.rollback()
print "Error %d: %s" % (e.args[0],e.args[1])
sys.exit(1)
finally:
cursor.close()
def update(con,domain, cur_count):
try:
cursor = con.cursor()
cursor.execute("UPDATE daily_stat SET prev_count = cur_count,cur_count = %d, day_count = day_count+1 WHERE domain = '%s'" %(cur_count,domain))
con.commit()
except mdb.Error, e:
con.rollback()
print "Error %d: %s" % (e.args[0],e.args[1])
sys.exit(1)
finally:
cursor.close()
现在,我希望在过去7天内获得前50个增长百分比最大的域名(第一张牌的出现次数/总排数增加)。 我是否必须在第二个表中创建7个新列以节省每天的发生次数。有什么棘手的方法吗?
感谢。