我想从我正在使用的应用程序表中获取一些信息(让我们称之为TICKETS表)。有两列具有我需要的信息,MODIFIED和CREATED。创建是创建故障单的时间,修改是修改相同故障单的时间(显然)。我的问题是如何获得当天每分钟卡住的门票数量(已经创建但尚未修改)?
CREATED | MODIFIED
1/1/2016 2:02:42 | 1/1/2016 2:02:48
1/1/2016 2:04:23 | 1/1/2016 2:06:02
我的想法是创建一个新表(让我们称之为RESULT),其中包含所有HH值的TIME列:每日MM,第二列将是以下结果: 对于TICKET表的所有行,SUM((CREATED< = TIME)AND(MODIFIED> TIME))。
TIME | RESULT
HH:MM | SUM((CREATED<=TIME) AND (MODIFIED>TIME))
我的问题是我如何实现这样的事情?
有更好的方法吗?
答案 0 :(得分:0)
不完全是你想要的,但由于这是一个困难的要求,我认为每一点都有帮助。
当你至少卖出一张票时,这张票带给你一天一天的票数。
SELECT
LPAD(EXTRACT(HOUR FROM created), 2, '0') || ':'
|| LPAD(EXTRACT(MINUTE FROM created), 2, '0') as timeOfDay,
COUNT(*) as ticketBuy
FROM t
GROUP BY
LPAD(EXTRACT(HOUR FROM created), 2, '0') || ':'
|| LPAD(EXTRACT(MINUTE FROM created), 2, '0')
ORDER BY timeOfDay;
得到你:
+-----------+-----------+
| TIMEOFDAY | TICKETBUY |
+-----------+-----------+
| 03:02 | 1 |
| 03:04 | 1 |
| 04:04 | 2 |
| 09:04 | 2 |
| 10:04 | 1 |
+-----------+-----------+
来自:
+--------------------+--------------------+
| CREATED | MODIFIED |
+--------------------+--------------------+
| 1/1/2016 3:02:42 | 1/1/2016 5:02:48 |
| 1/1/2016 3:04:23 | 1/1/2016 4:06:02 |
| 1/1/2016 4:04:23 | 1/1/2016 5:26:02 |
| 1/1/2016 4:04:23 | 1/1/2016 6:06:02 |
| 1/1/2016 9:04:23 | 1/1/2016 9:16:02 |
| 1/1/2016 9:04:53 | 1/1/2016 9:06:02 |
| 1/1/2016 10:04:23 | 1/1/2016 11:06:02 |
+--------------------+--------------------+