我有一张(入口)售票表,上面有 ticket_code , timestamp_processed 和事件代码。
即:
ticket_code event timestamp_processed
---------------------------------------------------------
44185909829105549 TICKET_ACCEPTED 1434636748
现在我想计算每个事件的发生次数='TICKET_ACCEPTED',直到指定的时间范围结束。
我使用此查询:
SELECT ticket_code, COUNT(ticket_code) count
FROM rest_history
WHERE timestamp_processed <= :endTime AND event = 'TICKET_ACCEPTED'
GROUP BY ticket_code
现在我想只使用startTime获取特定时间范围的count和ticket_codes。
以下是获取特定时间范围内所有ticket_codes的查询:
SELECT ticket_code
FROM rest_history
WHERE timestamp_processed >= :startTime AND
timestamp_processed <= :endTime AND
event = 'TICKET_ACCEPTED'
现在我想INNER JOIN两个查询或使用subselect构建一个,但我无法得到正确的解决方案。有人可以给我一个暗示吗?
更新
最后,我想要一个GROUP BY ticket_code,其中每个ticket_code的每次出现的个别计数在特定时间范围内具有event ='TICKET_ACCEPTED',但计数值应该包括直到endFrame的所有出现,而不仅仅是自“startTime”以来
即:
[ticket_code] => 1434636748 [count] => 3
[ticket_code] => 3434636745 [count] => 1
[ticket_code] => 2434636546 [count] => 10
答案 0 :(得分:1)
可能会加入桌子而不是自己。未经测试但是这样的事情: -
<script>
$(document).ready(function(){
$('#sMonth').change(function(){
<?php $viewType = 'Current'; ?>
}).change();
$('#sReportURL').change(function(){
<?php $viewType = 'Archived'; ?>
}).change();
});
</script>
答案 1 :(得分:0)
我认为这样可行:
select t1.ticket_code, t1.count from
(SELECT ticket_code, max(timestamp_processed) lasttime, COUNT(ticket_code) count
FROM rest_history
WHERE timestamp_processed <= :endTime AND event = 'TICKET_ACCEPTED'
GROUP BY ticket_code) as t1
where t1.lasttime >= :startTime
通过使用max(timestamp),我们确保任何带有timestamp_processed&gt; = starTime的故障单都包含在子查询中的最大时间戳中,以便它通过外部查询的测试。