答案 0 :(得分:2)
答案 1 :(得分:0)
这是一个老人,但是金色的。我来寻找答案,并认为我会分享我的学习。我想通过屏幕ID,采取的操作和记录的日期来总结用户操作。该原型使用Oracle XE版本,Python 3.5(64位)和pyodbc软件包。
import pyodbc
spam = {}
sqlQuery = ' \
SELECT actionexecutedon, screenid, eventtype \
FROM bmx_production_history \
'
connection= pyodbc.connect('dsn=XE;uid=hr;pwd=hr')
try:
cursor = connection.cursor()
cursor.execute(sqlQuery)
records = cursor.fetchall()
for record in records:
spam.setdefault(record.SCREENID, {})
spam[record.SCREENID].setdefault(record.EVENTTYPE, {})
spam[record.SCREENID][record.EVENTTYPE].setdefault(record.ACTIONEXECUTEDON.strftime('%Y-%m-%d'), 0)
spam[record.SCREENID][record.EVENTTYPE][record.ACTIONEXECUTEDON.strftime('%Y-%m-%d')]+=1
print(spam)
finally:
connection.close()
n.b。生产版本将汇总推回到Oracle引擎, - 使用GROUP函数计算每个屏幕每天的操作数 - 但嵌套字典的使用仍然(我认为)对可能的问题的有效响应使用一些旅行者尚未通过这种方式。运气。