【发布时间】:2020-11-26 13:43:41
【问题描述】:
我在 python 中使用 sqlite3,我有一个包含以下列的表:
recordid(int)、username(text)、locations(text)、types(text)、occupancy(int)、time_added(datetime)、token(text) 和 (undo)。
我有以下查询,我根据占用情况从表中选择数据,添加的时间在用户输入的两个指定时间之间,即 start_date 和 end_date:
('''SELECT locations, types,
(SELECT COUNT (occupancy) FROM traffic WHERE undo = 0 AND occupancy = 1 AND types = ? AND time_added BETWEEN ? AND ?),
(SELECT COUNT (occupancy) FROM traffic WHERE undo = 0 AND occupancy = 2 AND types = ? AND time_added BETWEEN ? AND ?),
(SELECT COUNT (occupancy) FROM traffic WHERE undo = 0 AND occupancy = 3 AND types = ? AND time_added BETWEEN ? AND ?),
(SELECT COUNT (occupancy) FROM traffic WHERE undo = 0 AND occupancy = 4 AND types = ? AND time_added BETWEEN ? AND ?),
FROM traffic WHERE types = ? GROUP BY type''',
(vehicle, start_date, end_date, vehicle, start_date, end_date, vehicle, start_date, end_date, vehicle, start_date, end_date, vehicle)
有没有办法压缩这个,所以我不必为了改变占用而多次复制和粘贴相同的东西?我尝试使用 for 循环,但这并没有真正让我有所收获。
干杯!
【问题讨论】: